我有两个 PHP 数组,它们是图像管理系统的一部分。
weighted_images 是一个多维数组。每个子数组都是一个关联数组,包含 'weight'(用于排序)和 'id'(图像的 ID)两个键。
array(
156 => array('weight'=>1, 'id'=>156),
784 => array('weight'=>-2, 'id'=>784),
)
图片 这个数组是用户输入的。它包含了图片ID的数组。
array(784, 346, 748)
我希望将它们合并成一个按照图像权重排序的ID数组。如果图像没有权重,则将其附加到末尾。
这不是特别难的问题,但我的解决方案远非优雅,我认为肯定有更好的方法来解决。
$t_images = array();
foreach ($weighted_images as $wi) {
if ( in_array($wi['id'], $images) ) {
$t_images[$wi['weight']] = $wi['id'];
}
}
foreach ($images as $image) {
if ( !$weighted_images[$image] ) {
$t_images[] = $image;
}
}
$images = $t_images;
问题:有更好的方法吗?
(涉及IT技术)