循环PHP数组并忽略一些条目

时间:2016-12-09 15:50:51

标签: php

我得到一些由后端生成的随机PHP数组,我想在其中循环,并忽略权重>的所有条目。 5000。 一些数组示例:

<a class="btn btn-danger btn-sm" (click)="reviewItem(item, batch)" href="#">
    <i class="fa fa-edit fa-lg"></i>
</a>

我想要的输出是:

array(4) {
  [0]=>
  object(stdClass)#72 (3) {
    ["weight"]=>
    string(2) "80"
    ["added_date"]=>
    string(19) "2016-10-02 11:49:27"
    ["etid"]=>
    string(1) "3"
  }
  [1]=>
  object(stdClass)#68 (3) {
    ["weight"]=>
    string(4) "6760"
    ["added_date"]=>
    string(19) "2016-10-04 14:30:25"
    ["etid"]=>
    string(1) "3"
  }
  [2]=>
  object(stdClass)#63 (3) {
    ["weight"]=>
    string(4) "1360"
    ["added_date"]=>
    string(19) "2016-10-04 14:56:21"
    ["etid"]=>
    string(1) "3"
  }
  [3]=>
  object(stdClass)#122 (3) {
    ["weight"]=>
    string(4) "1040"
    ["added_date"]=>
    string(19) "2016-10-25 16:52:25"
    ["etid"]=>
    string(1) "3"
  }

如何看待PHP for循环只过滤重量> 5000的数组值。谢谢。

2 个答案:

答案 0 :(得分:2)

存在许多方法,但这可能是最简单直接的方法:

<?php
$outputArray = [];
foreach ($inputArray as $inputElement) {
  if (5000 <= (int)$inputElement->weight) {
    $outputArray[] = $inputElement;
  }
}
var_dump($outputArray);

答案 1 :(得分:0)

您可以使用array_filter fonction:

function BigWeight($value)
{
    return (is_object($value) && $value->weight >= 5000);
}

 $filtered_array = array_filter($your_array, "BigWeight");
 print_r($filtered_array);