(php) php 二维数组排序


上面的是一个数组 然后下面的是个二维数组 根据上面排序的方式 排序下面的 有什么好的解决方法?

千里码群里问了又到这来?

话说下次能贴数组的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_fliparray_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

$tmp = [];
foreach$order as $key=>$val { foreach$products as $k=>$v { if$v[topic_id] == $val { $tmp[] = $v; } }
} 

发表评论

电子邮件地址不会被公开。 必填项已用*标注