繁体   English   中英

搜索一个数组并根据结果创建一个数组

[英]Search an array and create an array from the results

我在php的主题中有一个关联数组,第二个值是1或0。

例如: ([maths] => 1, [science] => 0, [english] => 1)

如何创建一个值为1的新项目数组? 即(数学,英语)

谢谢

$output = array_filter($input, function($v) {
    return $v == 1;
});

这应该可以解决问题(但需要PHP 5.3)-请参见array_filter()

$results = array();
foreach($array as $k=>$v){
  if($v == 1){
    $results[] = $k;
  }
}

如果可以保证值只能是1或0,则可以执行array_diff()来拾取每个不为 0的值。

$array = array( 'maths' => 1,
                'science' => 0,
                'english' => 1);

$newArray = array_diff($array, array(0));

var_dump($newArray);

编辑

或相应的array_intersect()方法以匹配每个 1的值:

$newArray2 = array_intersect($array, array(1));

var_dump($newArray2);

如果希望原始键成为新数组中的值,则只需将表达式包装在array_keys()函数中。 例如

$newArray2 = array_keys(array_intersect($array, array(1)));
$array2 = array()

foreach ( $array as $key=>$val ){
    if($val == 1)
    {
        $array2[] = $key;
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM