我有一个函数返回如下一行值
fldClientID fldPetID fldName fldBreed fldType fldInactive
> 1406 114 Lola Poodle - Toy Dog 0
1406 5786 Izadora Chihuahua long hair Dog 0
1406 8728 Kurmo Maltese Mix Dog 0
每个宠物的宠物ID不同,但是相同的客户ID,我需要一种方法来遍历返回的复现集并将每个宠物存储在变量中,例如
PETNAME1= lola PETBREED1= Poodle-To
PETNAME2= Izadora PETBREED2 =chihuahua long hair
我尝试过这段代码,但是一直只存储第一个宠物
$pets=$this->readPet();
While(next($pets))
{
$petname1=$pets['fldName'];
$petbreed1=$pets['fldBreed'];
$petname2=$pets['fldName'];
$petbreed2=$pets['fldBreed'];
}
答案 0 :(得分:0)
您可以显示您已经尝试过的内容。一些代码可能会很好。 无论如何,像这样:
$pets = [];
foreach ($rows as $row) {
$pets[$row->fldName] = $row->fldBreed;
}
编辑:如果要使用键作为宠物名称和值作为品种的数组。
编辑#2:具有动态变量分配。这仅用于教育目的。这是处理数据迭代的非常糟糕的方法。
$counter = 0;
while($counter < count($pets)){
${'petname' . ($counter+1)} = $pets[$counter]['fldName'];
${'petbreed' . ($counter+1)} = $pets[$counter]['fldBreed'];
$counter = $counter + 1;
}
echo $petname1;
echo ' - ' . $petbreed1;
echo "<br>";
echo $petname2;
echo ' - ' . $petbreed2;
更好的解决方案是使用类似array_column()的方法来修改数组。
$pets = array_column($arr, 'fldBreed', 'fldName');
var_dump($pets);