【问题标题】:To get array keys if value is not zero如果值不为零,则获取数组键
【发布时间】:2014-11-19 04:57:40
【问题描述】:

我有类似数组并使用 array_keys 来获取键:

$arr =  array(  1 => 1,
        2 => 3,
        3 => 2,
        5 => 0,
        6 => 0 );

$new_arr = array_keys($arr);

现在,如果值不为零,我想获取 array_keys。我该怎么做?

请帮忙。

【问题讨论】:

    标签: php array-key


    【解决方案1】:

    在获取密钥之前在您的阵列上运行array_filter;删除 0 值,你只得到你需要的键。

    $new_arr = array_keys(array_filter($arr));
    

    输出

    Array
    (
        [0] => 1
        [1] => 2
        [2] => 3
    )
    

    【讨论】:

      【解决方案2】:

      您可以在为array_keys 传递数组之前删除所有具有值的元素:

      NULL
      null
      ''
      0
      

      以下内容:

      array_filter($array, function($var) {
        // Remove all empty values defined in the above list.
        return !is_empty($var);
      });
      

      【讨论】:

      • 不需要回调,即使没有它也可以。它的默认行为:If no callback is supplied, all entries of array equal to FALSE (see converting to boolean) will be removed.
      • @Hanky웃Panky,这对我来说是一个很好的学习。这就是我喜欢stackoverflow的原因。 :)
      【解决方案3】:
      $num_array = array(1,2,3,4,0,0);
      $zero_val  = array_keys($num_array,!0);
      print_r($zero_val);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-08-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多