更复杂的向数组中添加值

时间:2013-05-05 00:47:07

标签: php arrays

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

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

但适合一个表达式

2 个答案:

答案 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;