我只是想知道,是否有一种优雅的方式在数组中添加元素,在我事先不知道的情况下,我是否要创建新索引或使用现有索引?
$array[$k] = $foo; // this overwrites existing index, never creates one
$array[] = $foo; // this always creates new one, never overwrites
array_push(...); // always creates new index
$array[null] = $foo // sadly, null is casted to empty string
做这样的事情会很好:
if($key === null) $array[] = $foo;
else $array[$key] = $foo;
但适合一个表达式
答案 0 :(得分:1)
$array[!isset($key) || $key === null? count($array) : $key ] = $foo;
更新:使用isset()
进行了改进
答案 1 :(得分:-1)
这是array_key_exists()
的用途!
if(array_key_exists($key, $array))
$array[$key] = $value;
else
$array[] = $value;