PHP如何在关联数组中填充默认值?
我有这样一个关联数组:PHP如何在关联数组中填充默认值?,php,arrays,Php,Arrays,我有这样一个关联数组: $list = array("key1"=>3,"key2"=>5,"key3","key4"=>2); 当我打印$list的值时,我得到以下结果: Array ( [key1] => 3 [key2] => 5 [0] => key3 [key4] => 2 ) 检查数组中的每个键是否已用整数填充,并在尚未获得值时将其设置为默认值1的最佳方法是什么 因此,检查后上述数组
$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 )
布尔检查,如果数组的所有值都是整数
$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);
试试这个
<?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);
您可以循环检查该值是否为数字,如果不是,则添加1。。看看你试过什么了吗?检查数组中的每个键是否都用整数填充了
这一行应该是检查数组中的每个值是否都用整数填充了
如果你对其进行编辑以包含一些解释,你的答案会更有用。
<?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);