PHP如何填充关联数组中的默认值?

时间:2015-09-07 13:13:53

标签: php arrays

我有一个像这样的关联数组:

$list = array("key1"=>3,"key2"=>5,"key3","key4"=>2);

当我打印$ list的值时,我得到以下内容:

Array ( [key1] => 3 
        [key2] => 5 
        [0] => key3 
        [key4] => 2 ) 

检查数组中的每个键是否已填充整数的最佳方法是什么,如果尚未获得值,则将其设置为默认值1?

所以检查后上面数组的最终结果应该是:

Array ( [key1] => 3 
        [key2] => 5 
        [key3] => 1
        [key4] => 2 ) 

3 个答案:

答案 0 :(得分:0)

    $list = array("key1"=>3,"key2"=>5,"key3","key4"=>2);

   foreach($list as $k => $v) {
        if(!is_int($v)) {
            unset($list[$k]);
            $list[$v] = 1;
        }
   }

   ksort($list);

   print_r($list);

答案 1 :(得分:0)

布尔检查,如果数组的所有值都是整数

$is_all_integer = array_filter($list, function($v){return is_int($v);}) === $list;

如果不是所有值都是整数,则设置默认值1

if(!$is_all_integer)
    $list = array_map(function(&$v){return is_int($v) ? $v : 1;}, $list);

答案 2 :(得分:0)

试试这个

<?php

$list = array("key1"=>3,"key2"=>5,"key3","key4"=>2);

foreach($list as $key=> $value)
{
    if(is_numeric($key))
    {
        unset($list[$key]);
        $list[$value] = 1;
    }

}

ksort($list);
echo "<pre>";
print_r($list);

如果您需要示例,请参阅链接https://ideone.com/n2ihA0

相关问题