Php在特定位置添加数组中的元素

时间:2015-04-28 13:26:58

标签: php arrays

我在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"]]

但是我需要使用ma position attribut,因为有类似的东西(如果我的位置分别为0-0-1:

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

如果我尝试$myEmptyArray[$data->getPosition()]我的错误"empty array"

感谢您的帮助!

3 个答案:

答案 0 :(得分: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 

答案 1 :(得分: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]);

此代码会将您的记录保存在数组中,并且不会替换您的值。

答案 2 :(得分: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());
    }