in_array()
bool in_array ( $val, $array_name ,$mode )
bool in_array ( $val, $array_name ,$mode )
bool in_array ( $val, $array_name ,$mode )
in_array()输出布尔值真或假,作为某值是否在数组里的判断。
比如:
<?php
$marks = array(100, 65, 70, 87);
if ( in_array("100", $marks,true) )
{
echo "found";
}
else{
echo "not found";
}
?>
<?php
$marks = array(100, 65, 70, 87);
if ( in_array("100", $marks,true) )
{
echo "found";
}
else{
echo "not found";
}
?>
<?php $marks = array(100, 65, 70, 87); if ( in_array("100", $marks,true) ) { echo "found"; } else{ echo "not found"; } ?>
但是,in_array()对于有子数组的数组无能为力,如果需要查询更底层或更复杂的数组,需要构件一个自定义函数进行查询:
<?php
function in_array_recursive($needle, $haystack) {
$it = new RecursiveIteratorIterator(new RecursiveArrayIterator($haystack));
foreach($it AS $element) {
if($element == $needle) {
return true;
}
}
return false;
}
<?php
function in_array_recursive($needle, $haystack) {
$it = new RecursiveIteratorIterator(new RecursiveArrayIterator($haystack));
foreach($it AS $element) {
if($element == $needle) {
return true;
}
}
return false;
}
<?php function in_array_recursive($needle, $haystack) { $it = new RecursiveIteratorIterator(new RecursiveArrayIterator($haystack)); foreach($it AS $element) { if($element == $needle) { return true; } } return false; }
如此一来,我们就能使用 in_array_recursive() 代替 in_array() 进行子数组的查询,例如:
$array = Array
(
[0] => Array
(
[0] => 225
[1] => 226
[2] => 227
[3] => 228
[4] => 229
[5] => 230
[6] => 340
[7] => 355
)
[1] => Array
(
[0] => 313
[1] => 314
[2] => 315
[3] => 316
[4] => 318
[5] => 319
)
[2] => Array
(
[0] => 298
[1] => 301
[2] => 302
[3] => 338
)
)
if( in_array_recursive( 225 , $array ) ){
echo "found 225 in array";
}
$array = Array
(
[0] => Array
(
[0] => 225
[1] => 226
[2] => 227
[3] => 228
[4] => 229
[5] => 230
[6] => 340
[7] => 355
)
[1] => Array
(
[0] => 313
[1] => 314
[2] => 315
[3] => 316
[4] => 318
[5] => 319
)
[2] => Array
(
[0] => 298
[1] => 301
[2] => 302
[3] => 338
)
)
if( in_array_recursive( 225 , $array ) ){
echo "found 225 in array";
}
$array = Array ( [0] => Array ( [0] => 225 [1] => 226 [2] => 227 [3] => 228 [4] => 229 [5] => 230 [6] => 340 [7] => 355 ) [1] => Array ( [0] => 313 [1] => 314 [2] => 315 [3] => 316 [4] => 318 [5] => 319 ) [2] => Array ( [0] => 298 [1] => 301 [2] => 302 [3] => 338 ) ) if( in_array_recursive( 225 , $array ) ){ echo "found 225 in array"; }