array( array( "ShopID" => "C024", "Name" => "a", "ListNo" => 13343 ), array( "ShopID" => "C024", "Name" => "c", "ListNo" => 13343 ), array( "ShopID" => "C024", "Name" => "b", "ListNo" => 13342 ), array( "ShopID" => "C024", "Name" => "d", "ListNo" => 13342 ), array( "ShopID" => "C024", "Name" => "e", "ListNo" => 13346 ), array( "ShopID" => "C024", "Name" => "f", "ListNo" => 13346 ));
ListNo相同的值重新組織成一個數組,實現的效果:
array("ShopID" => "C024", "Name" => array("a", "c"), "ListNo" = 13343);
回複內容:
array( array( "ShopID" => "C024", "Name" => "a", "ListNo" => 13343 ), array( "ShopID" => "C024", "Name" => "c", "ListNo" => 13343 ), array( "ShopID" => "C024", "Name" => "b", "ListNo" => 13342 ), array( "ShopID" => "C024", "Name" => "d", "ListNo" => 13342 ), array( "ShopID" => "C024", "Name" => "e", "ListNo" => 13346 ), array( "ShopID" => "C024", "Name" => "f", "ListNo" => 13346 ));
ListNo相同的值重新組織成一個數組,實現的效果:
array("ShopID" => "C024", "Name" => array("a", "c"), "ListNo" = 13343);
$arr = array( array( "ShopID" => "C024", "Name" => "a", "ListNo" => 13343 ), array( "ShopID" => "C024", "Name" => "c", "ListNo" => 13343 ), array( "ShopID" => "C024", "Name" => "b", "ListNo" => 13342 ), array( "ShopID" => "C024", "Name" => "d", "ListNo" => 13342 ), array( "ShopID" => "C024", "Name" => "e", "ListNo" => 13346 ), array( "ShopID" => "C024", "Name" => "f", "ListNo" => 13346 ) ); $lists = array_column($arr, 'ListNo'); $lists = array_flip(array_flip($lists)); $result = array(); foreach ($lists as $k => $v) { $res = array(); foreach ($arr as $key => $val) { if ($val['ListNo'] == $v) { if (count($res) == 0) { $res = $val; } else { if ($res['ShopID'] != $val['ShopID']) { if (!is_array($res['ShopID'])) { $res['ShopID'] = array($res['ShopID'], $val['ShopID']); } else { $res['ShopID'][] = $val['ShopID']; } } if ($res['Name'] != $val['Name']) { if (!is_array($res['Name'])) { $res['Name'] = array($res['Name'], $val['Name']); } else { $res['Name'][] = $val['Name']; } } } }// var_dump($res); } $result[] = $res; } var_dump($result);
結果如下:array (size=3)
0 =>
array (size=3) 'ShopID' => string 'C024' (length=4) 'Name' => array (size=2) 0 => string 'a' (length=1) 1 => string 'c' (length=1) 'ListNo' => int 13343
1 =>
array (size=3) 'ShopID' => string 'C024' (length=4) 'Name' => array (size=2) 0 => string 'b' (length=1) 1 => string 'd' (length=1) 'ListNo' => int 13342
2 =>
array (size=3) 'ShopID' => array (size=2) 0 => string 'C024' (length=4) 1 => string 'C025' (length=4) 'Name' => array (size=3) 0 => string 'e' (length=1) 1 => string 'f' (length=1) 2 => string 'g' (length=1) 'ListNo' => int 13346
遍曆數組,遍曆時把ListNo作為Key,然後判斷下如果isset同樣的Key就對Name做合併作業,沒有就直接寫入,到最後array_merge一下清除掉數組的Key