我有一个像这样的关联数组:
$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 )
答案 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