0

我只是想知道,在我事先不知道是否要创建新索引或使用现有索引的情况下,是否有一种优雅的方法可以在数组中添加元素?

$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;

但适合一个表达式

4

2 回答 2

1
$array[!isset($key) || $key === null? count($array) : $key ] = $foo;

更新:改进了isset()

于 2013-05-05T00:51:39.487 回答
-1

这是array_key_exists()为了什么!

if(array_key_exists($key, $array))
    $array[$key] = $value;
else
    $array[] = $value;
于 2013-05-05T00:53:56.583 回答