【问题标题】:Increase the speed of this code? Foreach提高这段代码的速度?前锋
【发布时间】:2016-12-08 08:01:53
【问题描述】:
$pass = array();

foreach ($var as $index) 
{
    if($index['Data']['Show'] == false)
        continue;

    $pass[] = $index;
}

echo json_encode($pass);

我需要知道如何以更精简和更快的方式获得相同的结果。

【问题讨论】:

  • 使用array_filter
  • 你有多少数据表明 3 行代码的 foreach 速度不够快?我怀疑是否会有比这更快的解决方案,甚至是 array_filter (虽然它会更快,但不会像 100 倍或任何重要的东西)。也许使用数据库并仅查询您想要显示的行。
  • 你怎么知道这段代码很慢?您尝试处理多少数据?
  • 这是一个动态数组,将从 MySQL 可编辑的导航栏获取数据,出于某种原因,Jquery 有时需要超过 200 毫秒才能获取信息,我想这个解决方案

标签: php foreach


【解决方案1】:

可能会稍微快一点,我还没有测试过,但是如果 ['Data']['Show'] 将是 truefalse 那么我会这样做:

$pass = array_filter($var, function($v) { return $v['Data']['Show']; });

如果它可能是评估为false 的其他值,那么:

$pass = array_filter($var, function($v) { return $v['Data']['Show'] !== false; });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多