2016-12-09 26 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);