在php中从多复选框true/false数组返回true元素

在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_

我的php很差。我有一个Multicheckbox,它以这种方式输出阵列:

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