人生最曼妙的风景,竟是内心的淡定与从容!
題主的想要拼裝的部分有問題,以content1為例:
content1
['content1'] => [ 'id'=>2, 'content1'=>'红2', 'id'=>1, 'content1'=>'红1', 'id'=>3, 'content1'=>'红3', ]
這樣最終只能保留id為3的資料。 我猜題主應該需要的是這樣:
['content1'] => [ ['id'=>2,'content1'=>'红2'], ['id'=>1,'content1'=>'红1'], ['id'=>3,'content1'=>'红3'], ]
那麼,“史上最垃圾的寫法來啦”,建議題主自己跑一下下面的程式碼。
原始數組:
$arr = [ ['id'=>2,'title1'=>'颜色','content1'=>'红2','title2'=>'尺码','content2'=>'XL'], ['id'=>1,'title1'=>'颜色','content1'=>'红1','title2'=>'尺码','content2'=>'L'], ['id'=>1,'title1'=>'颜色','content1'=>'红3','title2'=>'尺码','content2'=>'XXL'] ];
我寫的程式碼:
$newArr = []; foreach($arr as $k=>$v) { $keyArr = array_keys($v); $valueArr = array_values($v); foreach($keyArr as $key=>$val) { if((strstr($val, 'title') || strstr($val, 'content')) && !array_key_exists($val, $newArr)) $newArr[$val] = strstr($val, 'title') ? $valueArr[$key] : []; if(strstr($val, 'content')) { foreach($arr as $ke=>$va) { $newArr[$val][$ke]['id'] = $va['id']; $newArr[$val][$ke][$val] = $va[$val]; } } } }
不才,程式碼寫的不好,還望題主見諒,大神別打我臉。
要拼成什麼樣子?問問題你也不講清楚
需要分組查詢
題主的想要拼裝的部分有問題,以
content1
為例:這樣最終只能保留id為3的資料。
我猜題主應該需要的是這樣:
那麼,“史上最垃圾的寫法來啦”,建議題主自己跑一下下面的程式碼。
原始數組:
我寫的程式碼:
不才,程式碼寫的不好,還望題主見諒,大神別打我臉。
要拼成什麼樣子?問問題你也不講清楚
需要分組查詢