Pu sh значение ключа в пустом массиве с использованием php - PullRequest
2 голосов
/ 02 февраля 2020

У меня есть ассоциативный массив и значение, связанные с этим ключом, содержат данные json_encoded, поэтому я преобразовал их, и это привело к массиву. Я использую array_walk для итерации каждого значения массива, а затем печатаю значения с использованием foreach l oop, но в то же время я хотите сделать pu sh (ключ и значения) в пустом массиве, который объявлен снаружи, но он не вставляет никакого значения.

Примечание: Здесь $result является ассоциативным массивом, а его ключ содержит значение, равное json данные, я не хочу использовать вложенный foreach l oop, поэтому используется array_walk ()

$new_array=array();

array_walk($result, function(&$a, &$key) use($i) {

    $var = '';
    foreach (json_decode($a) as $row_key => $row_value) {

        if ($row_key == 'abc') {
            $new_array[$row_key][] = array(    // push key,value in $new_array
                $row_key => $row_value,
            );
        } else {

           echo $row_key . " : " . $row_value ;
        }
    }
});

1 Ответ

1 голос
/ 02 февраля 2020

Используйте $new_array по ссылке:

array_walk($result, function(&$a, &$key) use($i, &$new_array) {

Кроме того, я не вижу никакого смысла передавать $a и $key по ссылке. Возможно, вы показываете нам не полный код, и передача по ссылке $a и $key имеет смысл, но в настоящее время вы даже не используете $key в коде.

Какова цель передать его тогда?

// probably:
array_walk($result, function($a) use($i, &$new_array) {
...