2011-12-17 51 views
0

在下面的腳本中,我需要在數組的開頭添加一個值爲「」的項「None」。如何將項目添加到數組的開頭?

我使用下面的$ addFonts數組來做到這一點,但是,它被添加到選擇菜單中作爲「Array」。我錯過了什麼?

$googleFontsArray = array(); 
$googleFontsArrayContents = file_get_contents('http://phat-reaction.com/googlefonts.php?format=php'); 
$googleFontsArrayContentsArr = unserialize($googleFontsArrayContents); 

$addFonts = array(
'' => 'None' 
); 

array_push($googleFontsArray, $addFonts); 

foreach($googleFontsArrayContentsArr as $font) 
{ 
    $googleFontsArray[$font['css-name']] = $font['font-name']; 
} 
+0

它只是顯示爲'Array',因爲您在某些時候將其轉換爲字符串 - 上面的代碼都沒有做到......您希望生成的$ googleFontsArray看起來像什麼? – DaveRandom 2011-12-17 19:39:57

+0

數組(「」=>「無」,「Abel」=>「Abel」等等) – RegEdit 2011-12-17 19:51:20

+0

你說'到數組的開頭,但我懷疑數組中的實際位置是無關緊要的,因爲你正在製作一個看起來像查找表的關聯數組。在這種情況下,下面@ Fox的答案可能就是你想要的。實際上,如果您將'$ addFonts'作爲第一個參數傳遞給'array_merge()'和'$ googleFontsArray'作爲第二個參數,它將始終處於開始狀態。另一點是,如果順序很重要,你很可能希望它們按字母順序排列,在這種情況下,你可以['ksort()'](http://php.net/ksort)它。 – DaveRandom 2011-12-17 19:56:05

回答

1

應該只是

$googleFontsArray['None'] = ''; 

這個數組是關聯的。

0

也許你想使用

array_merge($googleFontsArray, $addFonts);

0

可以使用加法運算符:

$a = array('Foo' => 42); 
$a = array('None' => null) + $a; 

注意,大多數人會認爲這是不好的做法,讓使用關聯數組時,一對的位置是顯著。這是唯一的PHP - 其他語言有載體(非關聯陣列) hashmaps(關聯陣列)。

1

添加數組中的第一個元素。

array_unshift() 
$sampleArray = array("Cat", "Dog"); 
array_unshift($sampleArray ,"Horse"); 
print_r($sampleArray); // output array - array('horse', 'cat', 'dog') 

從數組中刪除第一個元素。

array_shift()