我有像这样的php数组输出
Array (
[DISEASE] => Array ( [0] => DM [1] => HT )
[DRUG] => Array ( [0] => INSULIN [1] => DIURETIC)
)
现在我要打印以下内容
For Disease DM, INSULIN is used
For Disease HT, DIURETIC is used
即我想将数组疾病的价值与药物的价值相匹配。 请帮帮我。
修改的
我在这里找不到“谢谢”按钮。谢谢大家的帮助。
答案 0 :(得分:4)
为什么不使用数组中的键? http://php.net/manual/en/language.types.array.php(参见示例一)
然后数组看起来像:
$items = array(
array('disease' => 'DM', 'drug' => 'INSULIN'),
array('disease' => 'HT', 'drug' => 'DIURETIC'),
);
你可以这样称呼它:
foreach($items as $item)
{
echo $item['disease'] . ' - ' . $item['drug'];
}
答案 1 :(得分:2)
数组的键指向其值。所以你的密钥是DISEASE和DRUG,每个都有0和1的键。所以 - 我们匹配的是键而不是值。
打印数组的方法有很多种。我很难采用最灵活的方式为未来打印这些值,但这是一种方式:
foreach ($items['DISEASE'] as $id => $disease)
{
echo 'For Disease ' . $disease . ', ' . $items['DRUG'][$id] . ' is used'."\n";
}
密钥$ id用于匹配疾病和药物子阵列。
答案 2 :(得分:1)
假设两个数组的长度相同,你可以这样做:
for ($i=0; $i < sizeof($yourarray['DISEASE']); ++$i) {
echo 'For Disease ', $yourarray['DISEASE'][$i], ', ';
echo $yourarray['DRUG'][$i], ' is used';
}
答案 3 :(得分:0)
在
[DISEASE] => Array ( [0] => DM [1] => HT )
包含您的密钥。
在
[DRUG] => Array ( [0] => INSULIN [1] => DIURETIC)
包含相应的值。
假设您的数组名为$array
,您可以将两者结合起来:
$mapped = array_combine($array['DISEASE'], $array['DRUG']);
然后,您可以通过密钥访问每种疾病药物:
$mapped['DM']; # INSULIN
要打印全部,只需重复
foreach($array['DISEASE'] as $disease)
{
$drug = $mapped[$disease]
echo "For Disease $disease, $drug is used.\n";
}
答案 4 :(得分:0)
这是诀窍:你可以明白这一点并解决你的问题
$an = array(
'numbers'=>array(1,2,3,4,5),
'alphabates'=>array('a','b','c','d','e')
);
foreach($an['numbers'] as $key=>$value){
echo $value." => ".$an['alphabates'][$key]."<br>";
}