我有一个$ checked数组,看起来像这样:
array(2) {
[0]=>
array(1) {
["id_kategorii"]=>
string(1) "2"
}
[1]=>
array(1) {
["id_kategorii"]=>
string(1) "4"
}
}
foreach中的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代码:
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>';
}
但它始终伴随着其他,in_array永远不会成真。
当它是2和4时,它应该适用于类别['id']。
为什么这个in_array不能正常工作?
答案 0 :(得分:2)
您需要使用array_column()
函数重构已检查的数组。
$checked = array(array('id_kategorii' => '2'), array('id_kategorii' => '4'));
$new_checked = array_column($checked, 'id_kategorii');
print_r($new_checked);
然后使用$new_checked
中的in_array()
数组。