2012-04-16 76 views
-2

嗨它是任何方式来连接到记录的价值是相同的?PHP如何加入阵列记录

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

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

,并作出这样

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

只是 “写代码” 我害怕。使用'foreach'循环,检查你是否想加入,然后建立你想要的项目/数组。 – Nanne 2012-04-16 09:39:52

回答

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")); 
?> 

测试和工作

+0

array(1){[0] => array(3){[“ID”] => string(6)“127078”[“row1”] =>字符串(9)“something”[“post”] =>字符串(7)“N16 7UJ”}}在我的机器上输出 – 2012-04-16 10:10:25

+0

感谢它甚至太多 – domos 2012-04-16 15:30:53

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_merge实施例(http://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) 
+0

你必须检查你是否想要11/12或12/13,结果是什么等... – Nanne 2012-04-16 09:44:27

+0

我不认为这会是一个问题..但纠正... @Nanne – Baba 2012-04-16 09:50:10

+1

我假设他有一个(至少)13个部分的阵列。如果你现在想加入12和13,当然,但如果你只有1到100,并且“想加入一些”),你就必须......好了......写下来。检查你是否想要它,然后你可以在最后使用合并明显:) – Nanne 2012-04-16 09:57:25