2016-12-09 24 views
0

我得到后端产生一些随机的PHP阵列,我想在循环它,而忽略所有条目,其中重量> 5000 某些阵列例如:环路一个PHP阵列上,并忽略某些条目

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" 
 
    }

而我想要的结果应该是:

array(1) { 
 
    [0]=> 
 
    object(stdClass)#72 (3) { 
 
    ["weight"]=> 
 
    string(2) "6760" 
 
    ["added_date"]=> 
 
    string(19) "2016-10-02 11:49:27" 
 
    ["etid"]=> 
 
    string(1) "3" 
 
    }

如何查找一个PHP for循环以只过滤重量大于5000的数组值。谢谢。

+0

您是否尝试过的东西? –

+0

听起来很直截了当。你的问题是什么? – arkascha

+0

试试这个http://php.net/manual/ru/class.filteriterator.php – lamik

回答

2

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

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

我不知道你为什么编辑过,这很好。 –

+0

@JeanDoux逻辑错误的方式是:OP想要输入5000以下的数据。所以如果它的权重低于5000,那么输出数组中的元素将被接受。 – arkascha

+0

Op想要超过5000,看他的例子。 –

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);