この投稿は、lazygc520 によって最終編集されました: 2014-08-05 14:02:30 既知の $arrs、
<br />array (<br /> 0 => <br /> array (<br /> 'pono' => 'a',<br /> 'no' => '4711',<br /> ),<br /> 1 => <br /> array (<br /> 'pono' => 'a',<br /> 'no' => '4714',<br /> ),<br /> 2 => <br /> array (<br /> 'pono' => 'b',<br /> 'no' => '4714',<br /> ),<br /> 3 => <br /> array (<br /> 'pono' => 'b',<br /> 'no' => '4715',<br /> ),<br /> 4 => <br /> array (<br /> 'pono' => 'c',<br /> 'no' => '4715',<br /> ),<br /> 5 => <br /> array (<br /> 'pono' => 'c',<br /> 'no' => '4716',<br /> ),<br />)<br />
現在のマージpono を使用したデータを取得すると、次のようになります。
<br />$tmp=array();<br />$data=array();<br />$i=0;<br />foreach($arrs as $key=>$arr){<br /> if(!empty($tmp) && array_key_exists($arr['pono'],$tmp)){<br /> $key=$tmp[$arr['pono']];<br /> $arr_no=explode(',',$data[$key]['no']);<br /> if(!in_array($arr['no'],$arr_no)) $data[$key]['no'].=','.$arr['no'];<br /> }else{<br /> $tmp[$arr['pono']]=$i;<br /> $data[$i++]=$arr;<br /> }<br />}<br />print_r($data);<br /><br />//得到结果:<br />Array<br />(<br /> [0] => Array<br /> (<br /> [pono] => a<br /> [no] => 4711,4714<br /> )<br /><br /> [1] => Array<br /> (<br /> [pono] => b<br /> [no] => 4714,4715<br /> )<br /><br /> [2] => Array<br /> (<br /> [pono] => c<br /> [no] => 4715,4716<br /> )<br />)<br />
次に、例の項目など、隣接しない no のみを表示します。
[0] => Array
( [pono] = & gt; a
[no] = & gt; 4711,4714
どうやって尋ねますか?
------解決策----------------------
$arrs = array ( <br> 0 => <br> 配列 (<br> 'pono' => 'a',<br> 'no' => '4711',<br> ),<br> 1 => ; <br> 配列 (<br> 'pono' => 'a',<br> 'no' => '4714',<br> )、<br> 2 => 配列 ( 'pono' => 'b',<br> 'no' => '4714',<br> ),<br> 3 => 配列 (<br> 'pono' => ; 'b',<br> 'no' => '4715',<br> ),<br> 4 => <br> 配列 (<br> 'pono' => 'c',<br> 'no' => '4715',<br> ),<br> 5 => <br> 配列 (<br> 'pono' => 'c',<br> 'no' => ' 4716',<br> ),<br>);<br><br><br>$tmp=array();<br>$data=array();<br>$i=0;<br> foreach($arrs as $key=>$arr){<br> if(!empty($tmp) && array_key_exists($arr['pono'],$tmp)){<br> $key=$tmp [ $arr['pono']];<br> $arr_no=explode(',',$data[$key]['no']);<br> if(!in_array($arr['no'] , $arr_no)) $data[$key]['no'].=','.$arr['no'];<br> }else{<br> } $tmp[$arr['pono']] =$i;<br> $data[$i ]=$arr;<br> }<br>}<br>print_r($data);<br><br>$result = array();<br> <br>foreach($data as $val){<br> list($a, $b) =explode(',', $val['no']);<br><br>