用同一记录的倍数填充PHP数组

  • 本文关键字:填充 PHP 数组 记录 php
  • 更新时间 :
  • 英文 :


我有这个函数;我正在尝试用每个$vendor的多个条目来填充$records数组。只有第一条记录按照我的意愿在$records数组中出现12次。现在我想让其他记录也这样做。

function vendors()
{
$vendor = [
"Chick-Fil-A #03971 Houston TX" => 3,
"Uber Trip Help.Uber.Com TX" => 8,
"Starbucks Store 05 Houston TX" => 3,
"Shell Service S Houston TX" => 3,
"Ralphs #0 1200 N Centr Houston TX" => 3,
"Nails Van Nuys TX" => 3,
"Postmates Ed3F9 to Httpspostmate CA" => 3,
"Pico Beauty Supply and SA Houston TX" => 3,
"Big Mamas & Papas 818-679-9976 TX" => 3,
"CIT-GO Houston TX" => 3,
"Dollar Tree Houston TX" => 3,
"McDonald's M6310 O Houston TX" => 5,
"Jamba Juice - Houston TX" => 3,
"Cvs/Pharm 10445--125 N Glendale" => 3,
];
$records = array();
foreach ($vendor as $key => $value)
{
$times = $value * 4;
$records = array_fill(0, $times, $key);
}
return $records;
}

您一次又一次地重写数组变量,而不是为其分配新数据。

Do:

$records[] = array_fill(0, $times, $key);//assign data as child-array to your final array

输出:-https://3v4l.org/rVdKg

或者你可能想要这样:-https://3v4l.org/2Yb8B

每次调用array_fill时,它都会覆盖上一次调用中所做的操作。

如果你不绝对需要使用array_fill,你可以用这样的东西来代替foreach:

foreach ($vendor as $key => $value){
$times = $value * 4;
for($x=0; $x<$times; $x++){
if(!isset($records[$x])){
$records[$x]=[];
}
array_push($records[$x], $key);
}
}

这就是你想要做的吗?

最新更新