2015-04-28 108 views
0

我在PHP中有一個空數組,並且需要在這個空數組中推入一些數據。PHP在特定位置添加陣列中的元素

對於每一個數據,我有$data->getName()$data->getValue()$data->getPosition(),所以我有:

 foreach($datas as $key => $data){ 
      array_push($myEmptyArray, array($data->getName() . ":" . $data->getValue())); 
     } 

我得到類似的東西:

[["lastname:andraud"], ["lastname:andro"], ["firstname:clement"]] 

但我需要使用馬position attribut,對於有一些(如果我在我的位置分別有0-0-1:

[["lastname:andraud, lastname:andro"], ["firstname:clement"]] 

如果我嘗試$myEmptyArray[$data->getPosition()]我有錯誤"empty array"

感謝您的幫助!

+0

返回空數組的數組的Cuz無關,在它和您正試圖獲取從一個空數組 –

+0

我想空數組添加元素使的元素。 ..什麼是解決方案? –

+0

你想要的行爲是用「,」連接,如果索引已經設置或去關聯數組樣式?你可以在你的數組的任何索引處插入元素,但是如果你使用計數器循環訪問,你需要執行「isset」。 –

回答

0
$myEmptyArray = array(); 

foreach($datas as $key => $data){ 
    $myEmptyArray[$data->getPosition()] = array($data->getName() . ":" . $data->getValue()); 
} 

使用自定義鍵代替array_push。之後,您可以使用這些鍵。對於你的情況,凱將成爲職位。

print_r($myEmptyArray[$position_id]); // get by position id 
0
$myEmptyArray = array(); 
$temp_val = ''; 
$new_val = ''; 
foreach($datas as $key => $data){ 
    if(array_key_exists ($data->getPosition() , $myEmptyArray)){ 
     $temp_val = $myEmptyArray[$data->getPosition()]; 
     $new_val = array($data->getName() . ":" . $data->getValue()); 
     $myEmptyArray[$data->getPosition()] = $temp_val.','.$new_val; 
    }else{ 
     $myEmptyArray[$data->getPosition()] = array($data->getName() . ":" . $data->getValue()); 
    } 
} 


print_r($myEmptyArray[$position_id]); 

這段代碼保存紀錄陣列,它不會取代你的價值觀。

0

我有解決方案:

foreach($values as $key => $value){ 
     $name = $value->getName(); 

     if(!isset($array[$value->getPosition()])){ 
      $array[$value->getPosition()] = array(); 
     } 

     array_push($array[$value->getPosition()], $name . ":" . $value->getValue()); 
    }