Вывод двух разных массивов из одного массива в php

#php #arrays #associative-array

#php #массивы #ассоциативный-массив

Вопрос:

Существует массив с именем $counts с выводом

 array:3 [
0 => {
"applied_date": "10-10"
"count": 1
}
1 => {
"applied_date": "10-14"
"count": 1
}
2 => {
"applied_date": "10-15"
"count": 1
}
]
 

Я хочу создать два разных массива с примененной датой и ее значением из каждого массива и считать из каждого массива в php. Это под ассоциативным массивом или что-то еще? Я новичок в php.

Комментарии:

1. Лучше вы можете использовать array_column() function . php.net/manual/en/function . array-column.php

Ответ №1:

Вы можете попробовать приведенный ниже код для вашего решения

 <?php
// Array representing a possible record set returned from a database
$records = array(
    array(
        "applied_date"=> "10-10",
        "count"=> 1
    ),
    array(
        "applied_date"=> "10-10",
        "count"=> 1
    ),
    array(
        "applied_date"=> "10-10",
        "count"=> 1
    )
);

$applied_date = array_column($records, 'applied_date');
$count = array_column($records, 'count');
print_r($applied_date);
print_r($count);


?>
 

Надеюсь, это поможет!

Комментарии:

1. убедитесь, что ваша версия PHP будет (PHP 5 >= 5.5.0, PHP 7)

2. Вы забыли добавить запятую в свой пример с массивом.

3. получение этой ошибки «Преобразование массива в строку», когда я использую имя своего массива $counts вместо $records.

4. можете ли вы опубликовать свой на pastebin?

5. прочитайте мой комментарий выше. поскольку вы пытаетесь echo создать массив, который будет выдавать вам ошибку. попробуйте print_r вместо этого это.

Ответ №2:

Выполните цикл по $counts массиву и переместите каждый элемент в новые массивы следующим образом:

 $applied_dates_arr = [];
$count_arr = []

foreach ($counts as $el) {
    $applied_dates_arr[] = $el['applied_date'];
    $count_arr[] = $el['count'];
}
 

Комментарии:

1. но это выдает ошибку «Невозможно использовать объект типа stdClass в качестве массива»

2. Итак, вы используете класс? не массив?

3. да, я использую фреймворк laravel, и результирующий объект — это то, что я получаю из запроса.

4. эта штука работает с многомерными массивами, но не с выводом, который я получаю.