比较数组和值的键时,如何获得其他值?

时间:2017-07-27 00:27:59

标签: php arrays if-statement

输出我的第一个数组$arr_val

    Array
(
    [0] => 0
    [1] => 2
    [2] => 3
)

输出第二个数组$pecah_arr

Array
(
    [0] => Kunyit dipercaya sebagai salah satu rempah yang dapat mendukung kesehatan hingga untuk pengobatan
    [1] => Sayangnya, pemakaian yang keliru justru berdampak sebaliknya
    [2] => Seperti berita yang diangkat NBC News, seorang wanita asal San Diego yang menerima pengobatan kunyit intravena harus mengakhiri nyawa.
    [3] => Jade Erick meninggal 16 Maret lalu setelah pergi ke India untuk melakukan pengobatan rempah-rempah untuk penyakit eksim yang dideritanya.
)

我想获得这样的输出, 如果$arr_val中的值与$pecah_arr的键相同,则打印相同的值。 但如果$arr_val中的值与$pecah_arr的键不相同,则打印不相同的值。

我的逻辑是这样的:

    $hasil_ringkasan=array();
    foreach ($arr_val as $key => $value) {
        foreach ($pecah_arr as $key2 => $value2) {
            if($value==$key2){
                $no_doc=$value+1;
                array_push($hasil_ringkasan, $value2);
                //INSERT KE DB untuk Learning
                $q=$this->db->query("INSERT INTO tb_sementara 
                VALUES('$key2[$value]','$no_doc','$fitur1_uji[$value]','$fitur2_uji[$value]',
                    '$fitur3_uji[$value]','$fitur4_uji[$value]','$fitur5_uji[$value]','$fitur6_uji[$value]','ringkasan')");

                }else{
                // INSERT KE DB untuk Learning
                $q=$this->db->query("INSERT INTO tb_sementara 
                VALUES('$key2[$value]','$no_doc','$fitur1_uji[$value]','$fitur2_uji[$value]',
                    '$fitur3_uji[$value]','$fitur4_uji[$value]','$fitur5_uji[$value]','$fitur6_uji[$value]','bukan') 
                ");
            }

        }
    }

虽然在if已经有效,但我不知道为什么else不起作用。 感谢..

2 个答案:

答案 0 :(得分:1)

您不需要遍历$ arr_val。改为使用in_array()。

$hasil_ringkasan=array();
    foreach ($pecah_arr as $key2 => $value2) {
        if(in_array($key2,$arr_val)){
            $no_doc=$value+1;
            array_push($hasil_ringkasan, $value2);
            //INSERT KE DB untuk Learning
            $q=$this->db->query("INSERT INTO tb_sementara 
            VALUES('$key2[$value]','$no_doc','$fitur1_uji[$value]','$fitur2_uji[$value]',
                '$fitur3_uji[$value]','$fitur4_uji[$value]','$fitur5_uji[$value]','$fitur6_uji[$value]','ringkasan')");

            }else{
            // INSERT KE DB untuk Learning
            $q=$this->db->query("INSERT INTO tb_sementara 
            VALUES('$key2[$value]','$no_doc','$fitur1_uji[$value]','$fitur2_uji[$value]',
                '$fitur3_uji[$value]','$fitur4_uji[$value]','$fitur5_uji[$value]','$fitur6_uji[$value]','bukan') 
            ");
        }


}

答案 1 :(得分:0)

<?php

$same     = array_intersect($arr_val, array_keys($pecah_arr));
$not_same = array_diff($arr_val, array_keys($pecah_arr));

foreach ($same as $index) {
    // do what you want on same values using $pecah_arr[$index] value
}

foreach ($not_same as $index) {
    // do what you want on NOT same values using $pecah_arr[$index] value
}