Я написал код для фильтрации массива json и печати некоторых элементов, но это вызвало у меня запрет на слишком частое использование процессора (бесплатный хостинг)
Вы можете помочь мне сделать это более эффективным? возможно, с помощью функций, таких как array_filter
вот мой код:
$obj = json_decode($data,true);
$elements=count($obj)-1;
for ($x = 0; $x <= $elements; $x++){
if ($obj[$x]["SymbolStateId"]==1) {
echo $obj[$x]["FirstOrderPage"]["ExchangeSymbols"]["NSCCode"];
echo ",";
echo $obj[$x]["FirstOrderPage"]["BestBuyPrice"];
echo ";";
}
}
использование array_walk + array_filter
array_filter Позволяет фильтровать элементы массива и возвращает новый массив с элементами, которые удовлетворяют логическому выражению обратного вызова.
array_walk с другой стороны, позволяет перебирать каждый элемент массива и применять Перезвоните функция для каждого из этого
Пожалуйста, используйте конкатенация строк оператор для печати большего количества переменных, не делайте 3 оператора для печати строки
array_walk(
array_filter(
$array,
function($item) {
return $item["SymbolStateId"] == 1;
}
),
function($item) {
echo $item["FirstOrderPage"]["ExchangeSymbols"]["NSCCode"] . "," . $item["FirstOrderPage"]["BestBuyPrice"] . ";";
},
);
Других решений пока нет …