1

我有 2 个数组

$amen=Array ( [0] => 1 [1] => 5 [2] => 2 [3] => 8 [4] => 9 [5] => 7) 

$amenArr=Array ( [1] => Array ( [en] => Air conditioning [th] => เครื่องปรับอากาศ ) [5] => Array ( [en] => Balcony/terrace [th] => ระเบียง/ทางเดิน ) [2] => Array ( [en] => Hair dryer [th] => ไดรเป่าผม ) [8] => Array ( [en] => Internet access (FREE) [th] => อินเตอร์เน็ต (ฟรี) ) [9] => Array ( [en] => Kitchen [th] => ห้องครัว ) [7] => Array ( [en] => Refrigerator [th] => ตู้เย็น ) [6] => Array ( [en] => Satellite/cable TV [th] => ดาวเทียม/เคเบิ้ลทีวี ) [4] => Array ( [en] => Shower Hot/Cool [th] => เครื่องทำน้ำอุ่น ) [3] => Array ( [en] => Television LCD/LED [th] => โทรทัศน์ LCD/LED ) )

而且我想从$amen价值中展示设施,所以我使用 array_key_exists 但它不起作用。

            foreach($amenArr as $key=>$val){
                if(array_key_exists($amen,$amenArr)){
                    echo "<input type=\"checkbox\" name=\"rtype_amen[]\" value=\"$key\" id=\"amen-$key\" checked/><label for=\"amen-$key\">&nbsp;".$amenArr[$key]['en']."</label><br />";
                }else{
                    echo "<input type=\"checkbox\" name=\"rtype_amen[]\" value=\"$key\" id=\"amen-$key\" /><label for=\"amen-$key\">&nbsp;".$amenArr[$key]['en']."</label><br />";
                }
            }

有没有办法使这项工作?

4

2 回答 2

1

只需使用if( isset( $amen[$key] ))

foreach($amenArr as $key=>$val){
    if( isset( $amen[$key] )){
        echo "<input type=\"checkbox\" name=\"rtype_amen[]\" value=\"$key\" id=\"amen-$key\" checked/><label for=\"amen-$key\">&nbsp;".$amenArr[$key]['en']."</label><br />";
    }else{
        echo "<input type=\"checkbox\" name=\"rtype_amen[]\" value=\"$key\" id=\"amen-$key\" /><label for=\"amen-$key\">&nbsp;".$amenArr[$key]['en']."</label><br />";
    }
}
于 2015-06-26T02:42:18.100 回答
0

根据php 文档,方法array_key_exists的第一个参数应该是键,即字符串或数字,但您传递的是整个$amen数组。

我想你想要的是这样的:

foreach($amen as $key=>$val){
    if(array_key_exists($val,$amenArr)){
         //First logic here
    }else{
         //second logic here
    }
}
于 2015-06-26T02:08:34.000 回答