$c=array("a"=>"blue","b"=>"green");
array_push($c,$c["d"]="red");
print_r($c);
此代碼將鍵添加到數組中。但它也將索引鍵添加到相同的鍵/值對..如何避免此索引鍵? 輸出:如何添加密鑰到php數組?
Array
(
[a] => blue
[b] => green
[d] => red
[0] => red
)
$c=array("a"=>"blue","b"=>"green");
array_push($c,$c["d"]="red");
print_r($c);
此代碼將鍵添加到數組中。但它也將索引鍵添加到相同的鍵/值對..如何避免此索引鍵? 輸出:如何添加密鑰到php數組?
Array
(
[a] => blue
[b] => green
[d] => red
[0] => red
)
只需添加新密鑰。
$c["y"] = "yellow";
您是否嘗試過簡單地使用$c['d'] = 'red';
?
不要在這裏使用array_push()
這是沒有必要的。 只需添加新的鍵值。
$c= array("a"=>"blue","b"=>"green");
$c['d'] = 'red';
只需添加其他鍵值這樣
$c=array("a"=>"blue","b"=>"green");
$c["d"]="red";
print_r($c);
出放爲
Array ([a] => blue [b] => green [d] => red)
不喜歡它的,
$c=array("a"=>"blue","b"=>"green");
$c["d"]="red";
echo "<pre>";
print_r($c);
和輸出一樣,
Array
(
[a] => blue
[b] => green
[d] => red
)
推新鍵值對到陣列中,像這樣:
$c["d"] = "red";
鍵沒有找到陣內將得到建立。
array_push
基本上是一種將數組視爲堆棧的操作。堆棧沒有密鑰,所以使用array_push
的關聯數組沒有任何意義(因爲無論如何您都無法使用array_pop
來檢索密鑰)。
如果要模擬的array_push
行爲,它允許同時添加多個條目,你可以做到以下幾點:
$c = array_merge($c, [ "d" => "red", "e" => "some other colour" ]);
除了別人:你可以把元素的數組,但有沒有記錄的方式(http://php.net/array_push)選擇您自己的密鑰。因此array_push
本身使用數字索引。
關聯數組的一種可能替代方法是使用(匿名)對象(stdClass
)。在這種情況下,您可以設置屬性,並且它有更多的OOP編碼風格。
$foo = new stdClass;
$foo->bar = 1;
var_dump($foo);
// if you really want to use it as array, you can cast it
var_dump((array) $foo);
$arrayName = array(
'bb' => 'aaaa',
'cc' => 'dddd',
'dd' => 'xxxx',
'aa' => 'yyyy',
'ee' => 'rrrr');
和
$arrayname = ['aaaa','dddd','xxxx','yyyy','rrrr'];
這個鍵是數字,相同
$arrayName = array(
0 => 'aaaa',
1 => 'dddd',
2 => 'xxxx',
3 => 'yyyy',
4 => 'rrrr');
array_push不作出關聯數組,僅索引的數組任何意義。 – GordonM
想知道爲什麼這個問題是downvoted!它很明顯,並顯示了代碼 –