Преобразование одного массива в другой за php - PullRequest
0 голосов
/ 27 мая 2020

У меня есть такой массив

$array =  (
            [customer] => Array
                (
                    [emailAddress] => test@gmail.com
                )

            [recommendationProductDetails] => Array
                (
                    [0] => Array
                        (
                            [productId] => 7053
                            [title] => silikonska termalna pasta tuba 7gr
                            [imageWebAddress] => http://Image/GetImage/6118
                            [webAddress] => http://Shop/Product?name=AG%20Termopasty%20silikonska%20termalna%20pasta%20tuba%207gr&accountingCode=8703
                            [description] => silikonska termalna pasta tuba 7gr
                        )

                    [1] => Array
                        (
                            [productId] => 4610
                            [title] => silikonska termalna pasta tuba 7gr
                            [imageWebAddress] => http://Image/GetImage/6118
                            [webAddress] => http://Shop/Product?name=AG%20Termopasty%20silikonska%20termalna%20pasta%20tuba%207gr&accountingCode=8703
                            [description] => silikonska termalna pasta tuba 7gr
                        )

                    [2] => Array
                        (
                            [productId] => 4591
                            [title] => silikonska termalna pasta tuba 7gr
                            [imageWebAddress] => http://Image/GetImage/6118
                            [webAddress] => http://Shop/Product?name=AG%20Termopasty%20silikonska%20termalna%20pasta%20tuba%207gr&accountingCode=8703
                            [description] => silikonska termalna pasta tuba 7gr
                        )

                    [3] => Array
                        (
                            [productId] => 1756
                            [title] => silikonska termalna pasta tuba 7gr
                            [imageWebAddress] => http://Image/GetImage/6118
                            [webAddress] => http://Shop/Product?name=AG%20Termopasty%20silikonska%20termalna%20pasta%20tuba%207gr&accountingCode=8703
                            [description] => silikonska termalna pasta tuba 7gr
                        )

                )

        )

Мне нужно получить новый массив, который будет выглядеть так

    $newArray = [7053, 4610, 4591, 1756];

Я пробовал много решений из этого вопроса Есть ли функция для извлечения «столбца» из массива в PHP? Но мне не повезло, я также пытался выполнить все, как это

    foreach($array as $row => $innerArray){
        foreach($innerArray as $innerRow => $value){
          print_r($value) . "<br/>";
        }
      }

Но таким образом я получил только отображение результатов, также я пробовал ответы на этот вопрос Foreach для массивов внутри массива

После всего этого мне не удалось получить правильный новый массив, может ли кто-нибудь помочь мне, пожалуйста, потому что я не очень хорош в php. Заранее спасибо

Также я пробовал

foreach ($dataRecommend as $item) {
    $namearray[] = $item['recommendationProductDetails'];
}

foreach ($namearray as $item) {
    $productArray[] = $item['productId'];
}
print_r($productArray);

Также я сделал это вот так

foreach ($array as $item) {
    $namearray[] = $item['recommendationProductDetails'];
}
for($i = 0, $l = 4; $i < $l; ++$i) {
    foreach ($namearray as $item) {
 $productArray[] = $item[$i]['productId'];
 }
  }

print_r($productArray);

Но я не вижу, что это хорошо: (

Ответы [ 3 ]

0 голосов
/ 27 мая 2020

array_column (массив $ input, смешанный $ column_key [, смешанный $ index_key = NULL]) do c

array_column ($ array ['adviceProductDetails'], 'productId');

0 голосов
/ 27 мая 2020

Вы можете использовать foreach для перебора каждого элемента в $array['recommendationProductDetails']. $newArray будет содержать извлеченные значения:

$newArray = array();
foreach ($array['recommendationProductDetails'] as $arrayItem) {
    array_push($newArray, $arrayItem['productId']);
}
print_r($newArray);

выведет

Array
(
    [0] => 7053
    [1] => 4610
    [2] => 4591
    [3] => 1756
)
0 голосов
/ 27 мая 2020

Есть ли функция для извлечения «столбца» из массива в PHP?

Да, есть array_column(array $input, mixed $column_key [, mixed $index_key = NULL]) do c

Итак, в вашем коде: array_column($array['recommendationProductDetails'], 'productId');

...