我有以下数组
Array
(
[0] => Array
(
[qty] => 46
)
[1] => Array
(
[qty] => 1
)
[2] => Array
(
[qty] => 0
)
)
如果任何值大于0,我想在此数组中搜索。我该怎么做?
答案 0 :(得分:1)
循环遍历数组元素,我已将其分配给此示例中名为$ arrayElements的变量...
$qtyValue = 0;
foreach($arrayElements as $arrayElement) {
$qtyValue = ($arrayElement['qty'] > 0) ? true : false;
if($qtyValue) {
break;
}
}
if($qtyValue) {
//Value greater than 0 exists
}
希望有意义......如果没有,请查看Foreach循环
其他PHP函数可以帮助解决这个问题,正如安德鲁在评论中所说的那样,但是从for / foreach循环开始,这样你才能理解它背后的逻辑。
重构一下:
$qtyValue = 0;
foreach($arrayElements as $arrayElement) {
if($arrayElement['qty'] > 0) {
$qtyValue = true
break;
}
}
if($qtyValue) {
//Value greater than 0 exists
}
答案 1 :(得分:1)
希望这会对您有所帮助
第一种方法:使用array_map
和array_filter
函数来获得所需的结果:
$arr =Array ('0' => Array('qty'=>46),'1'=>Array('qty'=>1),'2'=>Array('qty'=>0));
$quantities = array_filter(array_column($arr, 'qty'),function($n){
return ($n > 0) ;
});
print_r($quantities);
/* $quantities contains all qty higher than 0 */
使用foreach
第二次 方式
输出:$arr =Array ('0' => Array('qty'=>46),'1'=>Array('qty'=>1),'2'=>Array('qty'=>0));
foreach ($arr as $key => $item)
{
if ($item['qty'] > 0 )
{
$data[] = $item['qty'];
}
}
print_r($data);
/* $data contains all qty higher than 0 */
Array
(
[0] => 46
[1] => 1
)
答案 2 :(得分:0)
您可以使用array_column和max。
Echo max(array_column($arr, "qty"));
或者如果你想要一个布尔回归
If(max(array_column($arr, "qty")){
Echo "yes";
}Else{
Echo "no";
}
Max将从数组项目数量中获取最大值。
如果该值大于0,则if为真。