在 php 中更有效地访问和过滤数组

Accessing and filtering an array much more efficiently in php

我写了一段代码来过滤 json 数组并打印一些元素,但它导致我因 cpu 使用过多而被驱逐(免费托管计划) 你能帮我提高效率吗?也许通过使用像 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 让您过滤数组元素,returns 一个包含满足回调布尔语句的元素的新数组。

另一方面,

array_walk 允许您迭代每个数组元素并为每个元素应用 callback 函数

请使用string concatenation运算符来打印更多变量,不要为打印一个字符串创建3条语句

array_walk(
    array_filter(
        $array,
        function($item) {
            return $item["SymbolStateId"] == 1;
        }
    ),
    function($item) {
        echo $item["FirstOrderPage"]["ExchangeSymbols"]["NSCCode"] . "," . $item["FirstOrderPage"]["BestBuyPrice"] . ";";
    },
);