在php中从多复选框true/false数组返回true元素
我的php很差。我有一个Multicheckbox,它以这种方式输出阵列:在php中从多复选框true/false数组返回true元素,php,arrays,string,list,return,Php,Arrays,String,List,Return,我的php很差。我有一个Multicheckbox,它以这种方式输出阵列: Array ( [value1] => true [value2] => false [value2] => false [value4] => false [value5] => true [value6] => false ) 我想返回一个数组,其中只包含true元素(值)。然后,我将应用以下内容: $list_of_true_
Array
(
[value1] => true
[value2] => false
[value2] => false
[value4] => false
[value5] => true
[value6] => false
)
我想返回一个数组,其中只包含true元素(值)。然后,我将应用以下内容:
$list_of_true_values = explode(',', $array_i_am_looking_for);
return $list_of_true_values;
最后我想返回这个值:value1,value5
谢谢“如果您特别有
true
/false
值,您可以使用PHP而无需回调:
$values = array_filter($_POST['data']);
如果没有回调函数,array\u filter()
将过滤掉所有“false”和空值。然后,要从获得的列表中获取密钥,您可以使用PHP,因为只有具有“true”值的密钥才会出现在$values
数组中:
return array_keys($values);
在您的具体规范中,使用
array\u keys()
的可选$search\u value
参数可能就足够了,正如Rajat在他的回答中所示。但是,如果您需要扩展要保留或放弃的值列表,我建议您使用array\u filter()
。如果您特别有true
/false
值,您可以使用PHP而无需回调:
$values = array_filter($_POST['data']);
如果没有回调函数,array\u filter()
将过滤掉所有“false”和空值。然后,要从获得的列表中获取密钥,您可以使用PHP,因为只有具有“true”值的密钥才会出现在$values
数组中:
return array_keys($values);
在您的具体规范中,使用
array\u keys()
的可选$search\u value
参数可能就足够了,正如Rajat在他的回答中所示。但是,如果需要扩展要保留或放弃的值列表,我建议使用array\u filter()
。array\u键($array,true)
将返回一个数组,其中包含您需要的具有真值的键。..数组\u键($array,true)
将返回带有真值的键的数组,这是您需要的。正如Rajat所说,您可以使用数组_keys()
函数。我还要补充一点,如果您希望获得value1、value5
的输出,那么不应该使用explode()
,而是使用duel,内爆()
返回内爆(“,”,数组_键($array,true))代码>
这就是你所需要的
根据您的评论,如果您想将键用单引号括起来:
$keys = array_keys($array, true);
array_walk($keys, function(&$v, $k){$v = "'" . $v . "'";});
return (implode(",", $keys));
这被称为。正如Rajat所说,您可以使用数组键()
函数。我还要补充一点,如果您希望获得value1、value5
的输出,那么不应该使用explode()
,而是使用duel,内爆()
返回内爆(“,”,数组_键($array,true))代码>
这就是你所需要的
根据您的评论,如果您想将键用单引号括起来:
$keys = array_keys($array, true);
array_walk($keys, function(&$v, $k){$v = "'" . $v . "'";});
return (implode(",", $keys));
这就是所谓的。谢谢,我会给你关于内爆的正确答案。出于某种原因(我对php了解不多),它的工作原理是:“true”和“nottrue”(array_key($array,'true'))原因是,$array
中的值是字符串,而不是实际的布尔值。欢迎来到PHP的奇妙世界——需要大量的实践玩得开心Jordan,还有一件事,我如何返回像这样的值:“value1”,“value5”而不是value1,value5?谢谢,关于内爆的提示,我会给你正确的答案。出于某种原因(我对php了解不多),它的工作原理是:“true”和“nottrue”(array_key($array,'true'))原因是,$array
中的值是字符串,而不是实际的布尔值。欢迎来到PHP的奇妙世界——需要大量的实践玩得开心Jordan,还有一件事,我怎样才能返回这样的值:“value1”,“value5”而不是value1,value5?谢谢Rajat,我不知道为什么,但只能这样工作:array_keys($array,'true')谢谢Rajat,我不知道为什么,但只能这样工作:array_keys($array,'true'))