php array()的问题

时间:2011-10-13 10:26:09

标签: php arrays

我有像这样的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

即我想将数组疾病的价值与药物的价值相匹配。 请帮帮我。

修改

我在这里找不到“谢谢”按钮。谢谢大家的帮助。

5 个答案:

答案 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>";
}