Intereting Posts
Не удалось отправить электронную почту в php Как получить текущий идентификатор категории – OpenCart 2.0 как передать все параметры запроса запроса на встроенные контроллеры в twig symfony 2? Каков наилучший способ хранения переменных конфигурации в PHP? Устранение неполадок процессов PHP Как преобразовать datetime в ISO 8601 в PHP Есть ли способ добавить PHP SimpleXMLElement в другой SimpleXMLElement? Как я могу использовать API для получения данных quickbooks без браузера OAUTH? Как связать несколько параметров с подготовленным оператором MySQLi Невозможно найти libmysqlclient под / usr. при создании PHP 5.2 из источника на Ubuntu 12.4 Как я могу отправить push-уведомление нескольким устройствам за один раз в iPhone? php header excel и utf-8 Как мы можем отправлять сообщения GCM в большом количестве 1000 в базу данных, скажем, из 10 000 зарегистрированных пользователей? Многоязыковая интеграция Функция Smarty Object с ассоциативным массивом Неожиданный «=>», ожидаемый один из: «», «», «)»,

PHP array_chunk – разделение на основе переменной

Возможно ли array_chunk на основе значения в массиве?

массив

 Array ( [4f5hfgb] => Array ( [0] => ACME [1] => 4f5hfgb [2] => Aberdeen ) [sdf4ws] => Array ( [0] => ACME [1] => sdf4ws [2] => Birmingham ) [dfgdfg54] => Array ( [0] => EDNON [1] => dfgdfg54 [2] => Birmingham ) [345bfg] => Array ( [0] => EDNON [1] => 345bfg [2] => Birmingham ) [345fgfd] => Array ( [0] => VALVE [1] => 345fgfd [2] => Birmingham ) ) 

Можно ли вырезать те, у которых одинаковое значение в [0] ?

Желаемый выход

 Array ( [4f5hfgb] => Array ( [0] => ACME [1] => 4f5hfgb [2] => Aberdeen ) [sdf4ws] => Array ( [0] => ACME [1] => sdf4ws [2] => Birmingham ) ) Array ( [dfgdfg54] => Array ( [0] => EDNON [1] => dfgdfg54 [2] => Birmingham ) [345bfg] => Array ( [0] => EDNON [1] => 345bfg [2] => Birmingham ) ) Array ( [345fgfd] => Array ( [0] => VALVE [1] => 345fgfd [2] => Birmingham ) ) 

Если я понимаю ваш вопрос, вы пытаетесь сгруппировать все элементы, которые имеют одинаковое значение для ключа 0 в том же массиве. Вы не можете сделать это с помощью array_chunk но цикл ниже создает сгруппированный массив

 $result = array(); foreach($arr as $k => $v) { $result[$v[0]][$k] = $v; } print_r($result); 

Попробуй это:

 $values = array_unique(array_map( function ($v) { return $v[0]; }, $array )); $result = array(); foreach ($values as $val) { $result[] = array_filter($array, function ($v) use ($val) { return $v[0] == $val; }); } 

Нет. array_chunk разбивает массив на куски по размеру. Вы можете подумать о переходе в массив и поместить его в желаемую структуру.