在PHP中获取数组中带条件的键
使用print_r($modValArr) 我想知道此数组中存在大于零的任何值。如果它存在,我需要它的钥匙。我需要的结果是4 这在PHP中是如何实现的?试试这个在PHP中获取数组中带条件的键,php,arrays,Php,Arrays,使用print_r($modValArr) 我想知道此数组中存在大于零的任何值。如果它存在,我需要它的钥匙。我需要的结果是4 这在PHP中是如何实现的?试试这个 Array ( [0] => 0 [1] => 0 [2] => 0 [3] => 0 [4] => 1[5]) 试试这个 Array ( [0] => 0 [1] => 0 [2] => 0 [3] => 0 [4] => 1[5]) 要查找任何大于零的值,请执行以下操作
Array ( [0] => 0 [1] => 0 [2] => 0 [3] => 0 [4] => 1[5])
试试这个
Array ( [0] => 0 [1] => 0 [2] => 0 [3] => 0 [4] => 1[5])
要查找任何大于零的值,请执行以下操作:
$yourarray=array(0,0,2,0,4,1);
//array_filter used to remove 0,null,empty array.so you will get non empty or grater then 0 value of array
$newvalue=array_filter($yourarray);
foreach($newvalue as $key=>$value)
{
echo "value:".$value;
echo "Key:".$key;
}
例如
您可以将
$val\u的值更改为\u check
以更改阈值。要查找任何大于零的值:
$yourarray=array(0,0,2,0,4,1);
//array_filter used to remove 0,null,empty array.so you will get non empty or grater then 0 value of array
$newvalue=array_filter($yourarray);
foreach($newvalue as $key=>$value)
{
echo "value:".$value;
echo "Key:".$key;
}
例如
您可以将
$val\u的值更改为\u check
以更改阈值。这应该适用于您:
(在这里,我只是用过滤掉0以下的所有值,然后用过滤得到键)
这应该适合您: (在这里,我只是用过滤掉0以下的所有值,然后用过滤得到键)
1.您的阵列结构看起来如何?2.所以您想过滤掉所有大于0的值,然后从所有这些值中获取密钥?@Sona但在您的数组中,没有任何值大于
0
,在本例的末尾$modValArr
完全等于$moduleArr
-您这样复制它有什么原因吗?1。您的阵列结构看起来如何?2.所以您想过滤掉所有大于0的值,然后从所有这些值中获取密钥?@Sona但在您的数组中,没有任何值大于0
,在本例的末尾$modValArr
完全等于$moduleArr
-您这样复制它有什么原因吗?这是一个字符串,而不是一个字符串阵列!我已经发布了示例阵列,现在更糟了,因为这会给你带来致命的错误!这是一个字符串而不是数组!我已经发布了示例阵列,现在更糟了,因为这会给你带来致命的错误!很好,但是不需要这个功能array\u filter
将过滤掉0',null,false。@Abracadver你是对的,但我认为OP想改变数字(X)$v>X
,正如他所希望的那样,这样它就不能与$v>3
一起工作,这就是为什么我从startNice开始这样写它,但不需要这个函数array\u filter
将过滤掉0',null,false。@abracadver你是对的,但我认为OP想改变数字(X)$v>X
,因为他希望它有,所以它不能与$v>3
一起工作,这就是为什么我从一开始就这样写它的原因
$input_array=[0, 0, 4, 0, 1, 0];
$keys_greater_than_zero = find_keys_greater_than($input_array, 0);
// output: [2, 4]
<?php
$arr = [0, 0, 0, 0, 1, ""];
$result = array_keys(array_filter($arr, function($v){
return $v > 0;
}));
print_r($result);
?>
Array ( [0] => 4 )