@Mass1veDit

Как записать и вывести в массив наименование и url?

//Массив
$catalog_data = [];
foreach ( $result["array"] as $doc => $docinfo ) {
//если в массиве не содержится название каталога,записываем название 
   if (!in_array($docinfo['name'], $catalog_data)) {
      $catalog_data[]=  $docinfo['name'];
   }
}
//для примера вывожу так

foreach ($catalog_data as $doc => $docinfo) {
     echo $docinfo;
}


нужно записать еще и url catalog_data[]= $docinfo['url'];
Но при выводе у меня выводятся и url и наименование одновременно.

Как можно сделать так ?

Array
(
    [0] => Array
        (
            [name] => 1
            [url] => one
         
        )

    [1] => Array
        (
             [name] => 2
            [url] => two
        )

    [2] => Array
        (
             [name] => 3
            [url] => three
        )
)
  • Вопрос задан
  • 49 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Dark_Dante
Тут сразу идет что то неправильно. Зачем двойной обход массива форычем?
$catalog_data = array_map(
    function (array $array): array {
        return [
            'name' => $array['name'],
            'url' => $array['url'],
        ];
    },
    $result["array"],
);


Вот эта проверка на уникальность
if (!in_array($docinfo['name'], $catalog_data)) {
      $catalog_data[]=  $docinfo['name'];
   }

Вызывает вопросы. Если нужны только уникальные значения - можно сделать array_filter или что то типа того
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы