代码之家  ›  专栏  ›  技术社区  ›  Hailwood

在PHP中从数组中删除具有假值的键

  •  16
  • Hailwood  · 技术社区  · 15 年前

    我有一个关联数组 true / false 价值观。

    我正在尝试删除值所在的所有键 .

    所以如果数组是

    array(
      'key1' => true,
      'key2' => false,
      'key3' => false,
      'key4' => true
    );
    

    我想以

    array(
      'key1' => true,
      'key4' => true
    );
    

    我该怎么做?

    4 回复  |  直到 14 年前
        1
  •  35
  •   KingCrunch    15 年前
    $array = array_filter(array(
        'key1' => true,
        'key2' => false,
        'key3' => false,
        'key4' => true
    ));
    

    array_filter()

        2
  •  0
  •   Quamis    15 年前

    看见 http://www.php.net/manual/en/function.unset.php ,把这个和foreach结合起来,你就能得到你需要的东西。

    另外,请参见 http://www.php.net/manual/en/function.array-filter.php

        3
  •  0
  •   Nick    15 年前
    for (x=0; x < array.count; x++)
    {
         if (key.value == false)
         {
              unset($arr[x]);
         }
    }
    

    只是编了密码,所以我希望你知道我的意思。

        4
  •  0
  •   Martin Andersson    14 年前

    Arraydecleration(使用PHP 5.4数组速记法):

    $arr = ['key1' => TRUE, 'key2' => FALSE, 'key3' => FALSE, 'key4' => TRUE];
    

    然后从value==FALSE的数组中删除所有键和值(可以选择使用严格比较“==”):

    foreach ($arr as $key => $value)
        if ($value == FALSE)
            unset($arr[$key]);
    

    打印结果:

    print_r($arr);
    

    最后一行打印“Array([key1]=>1[key4]=>1)”。

    推荐文章