PHP array_filter从多维数组返回

时间:2017-12-04 10:51:42

标签: php codeigniter

PHP Data = $data['Sold_items']:
[Sold_items] => Array
(
    [0] => Array
        (
            [CGST_Percentage] => 9
            [SGST_Percentage] => 9
        )

    [1] => Array
        (
            [CGST_Percentage] => 9
            [SGST_Percentage] => 9
        )

)

PHP Array Filter Line:
    $GST_Percentage = 9;
    array_filter($data['Sold_items'], $this->sold_item_by_gst_percentage($data['Sold_items'], $GST_Percentage);

PHP sold_item_by_gst_percentage function:

private function sold_item_by_gst_percentage($GST, $GST_Percentage){
    return ($GST['CGST_Percentage'] == $GST_Percentage);
}

任何人都可以告诉我为什么会显示通知Undefined index: CGST_Percentagewarning array_filter() expects parameter 2 to be a valid callback, no array or string given如何解决此问题请帮助我。

1 个答案:

答案 0 :(得分:0)

http://php.net/array_filter "要使用的回调函数"
你没有定义要调用的函数,你使用它,调用它。如果你不知道如何,你可以使用doublecall。从示例3复制

array_filter($arr, function($value)
   {
    global $xxx;
    return $this->sold_item_by_gst_percentage($row, $xxx);
   }, ARRAY_FILTER_USE_KEY)

或者,您使用foreach过滤器

function myFilter($arr,$your_value,$your_index='CGST_Percentage')
    {
    foreach ($arr as $index=>$row)
        if ($row[$your_index]==$your_value)
            return $row;
    }
---
// $arr = $data['Sold_items']
// $your_index = 'CGST_Percentage'
// $your_value = $GST_Percentage