Как конвертировать массив в следующем формате

0

У меня есть многомерный массив. Я хочу преобразовать этот массив в новую форму массива, как указано в массиве 2

Массив-1

Массив (

[0] => Array
    (
        [0] => PRpriyer
        [1] => job1232
    )

[1] => Array
    (
        [0] => PRpriyer
        [1] => job1234
    )

[2] => Array
    (
        [0] => PRpriyer
        [1] => job1235
    )

[3] => Array
    (
        [0] => PRpriyer
        [1] => job1236
    )

[4] => Array
    (
        [0] => JSjais
        [1] => job1232
    )

[5] => Array
    (
        [0] => JSjais
        [1] => job1234
    )

)

Я хочу новый массив из этого формата, например: Array-2

Массив (

[0] => Array
    (
        [0] => PRpriyer
        [1] => job1232 | job1234 | job1235 | job1236
    )

[1] => Array
    (
        [0] => JSjais
        [1] => job1232 | job1234
    )

)

Как конвертировать? Пожалуйста помоги

  • 0
    Используйте функцию array_unique. Просто и мило
Теги:
arrays
multidimensional-array

3 ответа

2
Лучший ответ
foreach($array1 as $value){   $tmparray[$value[0]][]=$value[1]; }
foreach($tmparray as $key=>$values){   
  $result[]=array($key,implode(" | ",$values)); 
}

print_r($result);
0

Я бы сделал следующее:

function convertArray($inputArray) {
    $array = array();
    foreach ($inputArray as $value) {
        $array[$value[0]][] = $value[1];
   }

    $returnArray = array();
    foreach ($array as $key => $values) {
        $returnArray[] = array($key, implode(" | ", $values));
    }
    return $returnArray;
}

$result = convertArray($inputArray);
print_r($result);
0

$ array1 является оригинальным

$newArray = array();
foreach($array1 as $value){

   $newArray[$value[0]] .= $value[1]." | ";

}

newArray:

Array
(
    [PRpriyer] => job1232 | job1234 | job1235 | job1236 | 
    [JSjais] => job1232 | job1234 | 
)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню