如何访问多维数组的特定值?

时间:2017-05-25 11:06:27

标签: php arrays

我正在尝试访问多维数组中的特定值,但是我收到了一个未定义的索引错误。

这是我的代码:

     $hasil_ringkasan=array();
     foreach ($hasil_kelas as $key => $value) {
            $mayoritas = array_count_values($value);
            if($mayoritas['ringkasan']>1){
                array_push($hasil_ringkasan,$key);
            }

     }

以下是 $hasil_kelas :

的输出
Array
(
    [0] => Array
        (
            [0] => ringkasan
            [1] => ringkasan
            [2] => bukan
        )

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

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

)

但是为什么当我运行我的第一个代码时出现错误" Message: Undefined index: ringkasan"即使条件成功执行了吗?

我的预期输出如下:

Array(
    [0] => 0
    [1] => 1
    [2] => 2
    [3] => 4
    [4] => 8
    [5] => 9
    [6] => 11
    [7] => 14
    [8] => 16
    [9] => 19
    [10] => 20
 )

2 个答案:

答案 0 :(得分:1)

测试ringkasan是否存在

 $hasil_ringkasan=array();
 foreach ($hasil_kelas as $key => $value) {
        $mayoritas = array_count_values($value);
        if(isset($mayoritas['ringkasan']) && $mayoritas['ringkasan']>1){
            array_push($hasil_ringkasan,$key);
        }

 }

答案 1 :(得分:1)

如果任何数组没有元素ringkasan,则表示它将通过undefined errro,因此请使用isset进行检查

示例:

     `[0] => Array
    (
        [0] => bukan
        [1] => bukan
        [2] => bukan
    )`

在上面的示例中,您将获得

array(['bukan']=>3);  //so here is no ringkasan  key .

因此,使用isset检查变量是否存在,然后进行比较

if(isset($mayoritas['ringkasan']) && $mayoritas['ringkasan']>1)
{
    array_push($hasil_ringkasan,$key);
}