PHP - 以特定值作为第一个数组值对合并和打乱的数组进行排序
PHP - Sort the merged & shuffled array with specific value as first array value
我有 3 个 nested arrays
,我用 array_merge
合并它们,并用 shuffle
打乱它们。
这些是我的数组:
$array_1 = [
['product_1_1', 300, 100],
['product_1_2', 300, 100],
['product_1_3', 300, 100],
['product_1_4', 300, 100],
['product_1_5', 300, 100],
];
$array_2 = [
['product_2_1', 300, 250],
['product_2_2', 300, 250],
['product_2_3', 300, 250],
['product_2_4', 300, 250],
['product_2_5', 300, 250],
];
$array_3 = [
['product_3_1', 300, 500],
['product_3_2', 300, 500],
['product_3_3', 300, 500],
['product_3_4', 300, 500],
['product_3_5', 300, 500],
];
我想要实现的是在shuffle
完成后,总是首先将其中一个值放在$array_1
中,这样随机排列的数组始终以 $array_1
.
中的值之一开头
这是一种方法。从 array_1 中选择一个随机索引并从数组中删除该元素。然后组合所有,合并和洗牌,以 array_unshift 结尾,这将在最终数组前面加上我们的随机 array_1 值。
<?php
$array_1 = [
['product_1_1', 300, 100],
['product_1_2', 300, 100],
['product_1_3', 300, 100],
['product_1_4', 300, 100],
['product_1_5', 300, 100],
];
$array_2 = [
['product_2_1', 300, 250],
['product_2_2', 300, 250],
['product_2_3', 300, 250],
['product_2_4', 300, 250],
['product_2_5', 300, 250],
];
$array_3 = [
['product_3_1', 300, 500],
['product_3_2', 300, 500],
['product_3_3', 300, 500],
['product_3_4', 300, 500],
['product_3_5', 300, 500],
];
$first = rand(0, floor(count($array_1)));
$firstItem = $array_1[$first];
unset($array_1[$first]);
$merged = array_merge($array_1, $array_2, $array_3);
shuffle($merged);
array_unshift($merged, $firstItem);
我有 3 个 nested arrays
,我用 array_merge
合并它们,并用 shuffle
打乱它们。
这些是我的数组:
$array_1 = [
['product_1_1', 300, 100],
['product_1_2', 300, 100],
['product_1_3', 300, 100],
['product_1_4', 300, 100],
['product_1_5', 300, 100],
];
$array_2 = [
['product_2_1', 300, 250],
['product_2_2', 300, 250],
['product_2_3', 300, 250],
['product_2_4', 300, 250],
['product_2_5', 300, 250],
];
$array_3 = [
['product_3_1', 300, 500],
['product_3_2', 300, 500],
['product_3_3', 300, 500],
['product_3_4', 300, 500],
['product_3_5', 300, 500],
];
我想要实现的是在shuffle
完成后,总是首先将其中一个值放在$array_1
中,这样随机排列的数组始终以 $array_1
.
这是一种方法。从 array_1 中选择一个随机索引并从数组中删除该元素。然后组合所有,合并和洗牌,以 array_unshift 结尾,这将在最终数组前面加上我们的随机 array_1 值。
<?php
$array_1 = [
['product_1_1', 300, 100],
['product_1_2', 300, 100],
['product_1_3', 300, 100],
['product_1_4', 300, 100],
['product_1_5', 300, 100],
];
$array_2 = [
['product_2_1', 300, 250],
['product_2_2', 300, 250],
['product_2_3', 300, 250],
['product_2_4', 300, 250],
['product_2_5', 300, 250],
];
$array_3 = [
['product_3_1', 300, 500],
['product_3_2', 300, 500],
['product_3_3', 300, 500],
['product_3_4', 300, 500],
['product_3_5', 300, 500],
];
$first = rand(0, floor(count($array_1)));
$firstItem = $array_1[$first];
unset($array_1[$first]);
$merged = array_merge($array_1, $array_2, $array_3);
shuffle($merged);
array_unshift($merged, $firstItem);