#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. эта штука работает с многомерными массивами, но не с выводом, который я получаю.