如何从值中找到键

How to find key from value

我有 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 />";
                }
            }

有没有办法让这个工作?

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

我猜你想要的是这样的:

foreach($amen as $key=>$val){
    if(array_key_exists($val,$amenArr)){
         //First logic here
    }else{
         //second logic here
    }
}

只需使用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 />";
    }
}