使用in_数组PHP检查此数组

使用in_数组PHP检查此数组,php,arrays,string,Php,Arrays,String,我有一个$checked数组,如下所示: array(2) { [0]=> array(1) { ["id_kategorii"]=> string(1) "2" } [1]=> array(1) { ["id_kategorii"]=> string(1) "4" } } foreach($categories as $category) { $final

我有一个$checked数组,如下所示:

array(2) {
  [0]=>
  array(1) {
    ["id_kategorii"]=>
    string(1) "2"
  }
  [1]=>
  array(1) {
    ["id_kategorii"]=>
    string(1) "4"
  }
}
foreach($categories as $category)
            {
                $final .= '<tr>';

                if( in_array($category['id'], $checked) )
                {
                    $final .= '<td>'.form_checkbox(array('name' => 'categories[]', 'value' => $category['id'], 'checked' => 'checked')).'</td>';
                }
                else
                {
                    $final .= '<td>'.form_checkbox(array('name' => 'categories[]', 'value' => $category['id'])).'</td>';
                }
foreach中的$category数组如下所示:

array(2) {
  ["id"]=>
  string(2) "14"
  ["nazwa"]=>
  string(3) "123"
}
array(2) {
  ["id"]=>
  string(1) "8"
  ["nazwa"]=>
  string(5) "ajaja"
}
array(2) {
  ["id"]=>
  string(1) "4"
  ["nazwa"]=>
  string(23) "ale nie no kurde w dupe"
}
等等

但它不是典型的数组,比如数组('1','2','3'); 所以我认为因为它,这不起作用,但我不知道

我有这样的PHP代码:

array(2) {
  [0]=>
  array(1) {
    ["id_kategorii"]=>
    string(1) "2"
  }
  [1]=>
  array(1) {
    ["id_kategorii"]=>
    string(1) "4"
  }
}
foreach($categories as $category)
            {
                $final .= '<tr>';

                if( in_array($category['id'], $checked) )
                {
                    $final .= '<td>'.form_checkbox(array('name' => 'categories[]', 'value' => $category['id'], 'checked' => 'checked')).'</td>';
                }
                else
                {
                    $final .= '<td>'.form_checkbox(array('name' => 'categories[]', 'value' => $category['id'])).'</td>';
                }
foreach($categories作为$category)
{
$final.='';
if(在数组中($category['id',$checked))
{
$final.=''.form_复选框(数组('name'=>'categories[],'value'=>$categories['id'],'checked'=>'checked'));
}
其他的
{
$final.=''.form_复选框(数组('name'=>'categories[]','value'=>$categories['id']))。';
}
但它总是伴随着其他东西,in_数组永远不会实现

当类别['id']为2和4时,它应该为真


为什么这个数组不能正常工作?

您需要使用
array\u column()
函数重新构造选中的数组

$checked = array(array('id_kategorii' => '2'), array('id_kategorii' => '4'));
$new_checked = array_column($checked, 'id_kategorii');
print_r($new_checked);

然后在
中使用
$new\u checked
数组,然后在
中使用选中的数组()

您需要使用选中的数组。使用
数组列()
可以创建一个新数组,然后在
中使用数组()
will work fine你说我必须使用什么?@FrayneKonok我不明白你的观点或想法,为什么要创建新列?你选中的数组应该是:
array('2','4')
right?它在foreach-like中首先检查14==2,不,然后检查14==4,不,其他。但是当as$category['id'中有4时没错,因为我们有4美元的支票[1]['id_kategorii']