У меня есть этот массив, но я хотел, чтобы он отображал массив только для категории «смотреть» и хотел сохранить выбранный массив в переменной PHP, мне нужно попытаться выполнить поиск в Интернете, чтобы найти решение, но безуспешно.
$arr = [
'status' => 1,
'msg' => [
'total_records' => 5,
'total_pages' => 1,
'page_number' => 1,
'per_page' => 100,
'return_count' => 5,
'page_result' => [
0 => array
(
'items' => 200052001,
'code' => 501,
'category' => 'watch',
'price' => 50,
'stock' => 1,
),
1 => array
(
'items' => 200052001,
'code' => 401,
'category' => 'shirt',
'price' =>3,
'stock' => 1,
),
2 => array
(
'items' => 200052001,
'code' => 172758801,
'category' => 'watch',
'price' => 200,
'stock' => 1,
),
],
],
'errcode' => 0,
];






Это должно сработать.
$watch_array = array();
foreach($arr["msg"]["page_result"] AS $k => $item) {
if ($item["category"] == "watch") {
$watch_array[] = $item;
}
}
Теперь у вас есть массив, содержащий только часы.
Чтобы отобразить его содержимое, используйте:
print_r($watch_array);
Проверьте эту функцию поиска для вашего требования. Его полностью динамический наряду с рекурсивным характером.
function search($array, $key, $value)
{
$results = [];
if (is_array($array)) {
if (isset($array[$key]) && $array[$key] == $value) {
$results[] = $array;
}
foreach ($array as $subarray) {
$results = array_merge($results, search($subarray, $key, $value));
}
}
return $results;
}
$temp = search($arr, "category", "watch");
спасибо, чувак, это должно помочь. я включу тебя в свой список
извините, у меня нет репутации, я пойду на встречу со всеми, кто поможет мне, если мое программное обеспечение будет закончено.
Вы можете принять ответ, которые, по вашему мнению, являются лучшим решением вашей проблемы.
foreach($arr['msg']['page_result'] as $out){if ($out['category']=='watch'){//do something}