[英]Shuffle value inside Loop and concatenate with array
我確實有一個要求,在一個數組里面我需要洗牌。
下面是代碼片段
$vehicle = array('hcv','hcv','hcv','hcv','hcv','hcv','hcv','hcv','hcv','hcv');
$RequiredVehicle = 3;
$vehicleList = array();
for($i=0;$i<count($vehicle);$i++)
{
$vehicleList[] =$vehicle[$i].$RequiredVehicle;
}
echo "<pre>";
print_r($vehicleList);
輸出我得到的是
Array
(
[0] => hcv3
[1] => hcv3
[2] => hcv3
[3] => hcv3
[4] => hcv3
[5] => hcv3
[6] => hcv3
[7] => hcv3
[8] => hcv3
[9] => hcv3
)
我需要的實際輸出是
Array
(
[0] => hcv1
[1] => hcv2
[2] => hcv3
[3] => hcv1
[4] => hcv2
[5] => hcv3
[6] => hcv1
[7] => hcv2
[8] => hcv3
[9] => hcv1
)
有10輛車和3輛所需車輛所以我需要的輸出是總車輛應該在3輛所需車輛之間洗牌
如果$ vehicle = 10且$ RequiredVehicle = 3則Array值應為1,2,3,1,2,3,1,2,3,1
如果它的$ vehicle = 10和$ RequiredVehicle = 2那么Array值應該是1,2,1,2,1,2,1,2,1,2
那是因為你只是追加$RequiredVehicle
您可以使用模數%
$i
並添加1. Like ( ( $i % $RequiredVehicle ) + 1 )
$vehicle = array('hcv','hcv','hcv','hcv','hcv','hcv','hcv','hcv','hcv','hcv');
$RequiredVehicle = 3;
$vehicleList = array();
for($i=0;$i<count($vehicle);$i++)
{
$vehicleList[] =$vehicle[$i] . ( ( $i % $RequiredVehicle ) + 1 );
}
echo "<pre>";
print_r($vehicleList);
這將導致:
Array
(
[0] => hcv1
[1] => hcv2
[2] => hcv3
[3] => hcv1
[4] => hcv2
[5] => hcv3
[6] => hcv1
[7] => hcv2
[8] => hcv3
[9] => hcv1
)
希望它能提供你的實際輸出:)
$vehicle = array('hcv','hcv','hcv','hcv','hcv','hcv','hcv','hcv','hcv','hcv');
$RequiredVehicle = 3;
$vehicleList = array();
$j = 1 ;
for($i=0;$i<count($vehicle);$i++)
{
$vehicleList[] =$vehicle[$i].$j++;
if($j > $RequiredVehicle){
$j=1;
}
}
echo "<pre>";
print_r($vehicleList);
輸出:
Array
(
[0] => hcv1
[1] => hcv2
[2] => hcv3
[3] => hcv1
[4] => hcv2
[5] => hcv3
[6] => hcv1
[7] => hcv2
[8] => hcv3
[9] => hcv1
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.