84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
上面的是一个数组 然后下面的是个二维数组 根据上面排序的方式 排序下面的 有什么好的解决方法?
欢迎选择我的课程,让我们一起见证您的进步~~
千里码群里问了又到这来?
话说下次能贴数组的json数据吗? 放个github也行啊
demo:https://3v4l.org/D6buv
$order = [465, 472, 442, 410, 396, 395, 297, 364, 355, 221]; $products = array( array( '_id' => '57208ea27f8b9a5e048b4598', 'topic_id' => 472, 'host_pic' => '/topic', 'topic_name' => 'goods 1', 'template' => 4 ), array( '_id' => '57208ea27f8b9a5e048b4598', 'topic_id' => 410, 'host_pic' => '/topic', 'topic_name' => 'goods 2', 'template' => 2 ), array( '_id' => '57208ea27f8b9a5e048b4598', 'topic_id' => 465, 'host_pic' => '/topic', 'topic_name' => 'goods 3', 'template' => 1 ), array( '_id' => '57208ea27f8b9a5e048b4598', 'topic_id' => 396, 'host_pic' => '/topic', 'topic_name' => 'goods 4', 'template' => 4 ) ); $column = array_flip(array_column($products, 'topic_id')); $_products = []; foreach ($order as $row) { if (! empty($column[$row])) { $_products[] = $products[$column[$row]]; } } print_r($_products);
ls的代码中! empty改成isset,否则$product[0]做不了排序另外如果topic_id有重复的话,重复的元素不会在新书组中所以还是写两个foreach吧
! empty
isset
$product[0]
topic_id
foreach
$tmp = []; foreach($order as $key=>$val) { foreach($products as $k=>$v) { if($v['topic_id'] == $val) { $tmp[] = $v; } } }
千里码群里问了又到这来?
话说下次能贴数组的json数据吗? 放个github也行啊
demo:https://3v4l.org/D6buv
ls的代码中
! empty
改成isset
,否则$product[0]
做不了排序另外如果
topic_id
有重复的话,重复的元素不会在新书组中所以还是写两个
foreach
吧