2011-03-28 81 views
3

當我通過array_push()添加一個字符串值轉換成數組,它給我一個數值,即如何添加一個字符串值到PHP數組

$array=array("one","two","three"); 
$array2=array("test","test2"); 
foreach($array as $value){ 
    if($value==='one'){ 
     $push=array_push($array2, $value); 
    } 
} 
print_r($push); 

它輸出3。什麼我想是$array2 = array("test","test2","one")

+0

好,你的代碼工作正常...... – mauris 2011-03-28 11:07:05

+0

是的代碼工作正常,但我需要'一個'應該添加在數組的末尾,當我'print_r($ push)'應該是這樣的'array [0] = >測試中,[1] => TEST2,[2] => one' – 2011-03-28 11:11:54

回答

8

array_push正在爲其設計。

它將添加該值並返回該數組中的元素數。

所以它是自然的,如果它返回3你的數組有2個元素後陣列推現在有三個元素。

你應該print_r($array2)你的數組,看看元素。

4

這條線:

$push = array_push($array2, $value); 

應該只是

array_push($array2, $value); 

array_push()使用參考陣列的第一個參數。當您print_r()時,您打印陣列$array2而不是$push

0

array_push通過引用獲取數組,並返回數組中新的元素數量,而不是如here所述的新數組。這就是爲什麼你得到3.如果你想看到陣列中的元素使用printr($array2);

1

您正在打印array_push的返回值,這是推後的數組中的項目數。試試這個:

<?php 

$array = array("one","two","three"); 
$array2 = array("test","test2"); 

foreach ($array as $value) { 
    if ($value === 'one') { 
     array_push($array2, $value); 
    } 
} 

print_r($array2); 
0

真的,你應該使用$array2[] = $value;這將使值在第一個可用數字鍵在陣列中,而不是array_push()

要獲得最後一個元素的值在數組中(也就是你剛纔添加的),並保持陣列完好,使用end($array),或者得到的最後一個元素,並從數組中刪除它,使用array_pop($array)