-2

こんにちは、値が同じであるレコードに接続する方法はありますか?

お気に入り

[12]=> Array (
 [ID] => 127078
 [row1] => 
 [post] => N16 7UJ
)

[13]=> Array (
 [ID] => 127078
 [row1] => something
 [post] =>
)

そしてそのように作る

[12]=> Array (
 [ID] => 127078
 [row1] => something
 [post] => N16 7UJ
)
4

2 に答える 2

0

あなたは次のような非常に多くのオプションがありますarray_replace array_merge foreach while Iterator

しかし、array_replaceどのアレイがどのアレイを置き換えるかを簡単に選択できるので、私は好みます

$array[12] = array("ID"=>127078,"row1"=>"","post"=>"N16 7UJ");
$array[13] = array("ID"=>127078,"row1"=>"something","post"=>"");
var_dump($array[12]);

array_replacehttp://www.php.net/manual/en/function.array-replace.php

$array[13] = array_filter($array[13]); //Filter Replacement
$array[12]= array_replace($array[12],$array[13]);

array_mergehttp://php.net/manual/en/function.array-merge.php

//$array[12] = array_filter($array[12]); //Optinal 
$array[13] = array_filter($array[13]); //Filter Spaces
$array[12]= array_merge($array[12],$array[13]);
var_dump($array[12]);

出力

array
  'ID' => int 127078
  'row1' => string 'something' (length=9)
  'post' => string 'N16 7UJ' (length=7)
于 2012-04-16T09:42:07.910 に答える
0

ここでこの関数を取ります

<?php

$array = array(
                12 => array (
                 "ID" => '127078',
                 "row1" => '',
                 "post" => 'N16 7UJ',
                ),

                13 => array (
                 "ID" => '127078',
                 "row1" => 'something',
                 "post" => '',
                )

            );
function mergedup($array,$matcher){
    if(!function_exists('remove_element')){
        function remove_element($arr,$element){
            $ret_arr = array();
            foreach($arr as $val){
                if($val !== $element){
                    array_push($ret_arr,$val);
                }
            }
            return $ret_arr;    
        }
    }
    $array = remove_element($array,array());
    $return_array = array();

    while(isset($array[0])){
        $temp = $array[0];
        $array = remove_element($array,$temp);
        $array_temp = array();
        foreach($array as $vals){
            if($temp[$matcher]==$vals[$matcher]){
                array_push($array_temp,$vals);
                foreach($temp as $key => $val){
                    if(empty($temp[$key])){
                        $temp[$key] = $vals[$key];
                    }
                }
            }
        }
        foreach($array_temp as $vals){
            $array = remove_element($array,$vals);
        }
        array_push($return_array,$temp);
    }

    return $return_array;
}

var_dump(mergedup($array,"ID"));
?>

テストされ、動作しています

于 2012-04-16T10:09:51.510 に答える