[英]How to split multidimensional array PHP
我有一个像多维数组
$array = array ( [0] => array ([0] => 'stack1', [1] => 'stack2'),
[1] => array ([0] => 'exchange1', [1] => 'exchange2'),
[2] => array ([0] => 'overflow1', [1] => 'overflow2'),
[3] => array ([0] => 'super1', [1] => 'super2')
);
我该如何拆分具有特定单词(如“溢出”)的数组,我必须将其移至以下两个数组。 之后,我想循环。
$array1 = array ( [0] => array ([0] => 'stack1', [1] => 'stack2'),
[1] => array ([0] => 'exchange1', [1] => 'exchange2'),
[2] => array ([0] => 'super1', [1] => 'super2')
);
$array2 = array ( [0] => array ([0] => 'overflow1', [1] => 'overflow2') );
我如何使用php实现此目的
function array_find($needle, $haystack, $search_keys = false) {
if(!is_array($haystack)) return false;
foreach($haystack as $key=>$value) {
$what = ($search_keys) ? $key : $value;
if(strpos($what, $needle)!==false) return $key;
}
return false;
}
$word = 'overflow';
$c = count($array);
for ($i=0; $i<$c; $i++) {
if (array_find($word, $array[$i])) {
$array2[] = $array[$i];
}
else {
$array1[] = $array[$i];
}
}
array_find()类似, array_search() ,但它也适用于部分匹配。
$search = 'overflow'; // set the search phrase
foreach($array AS $sub) {
$final = 1;
foreach($sub AS $val) {
if ( strpos($search,$val) ) { $final = 2; }
}
${'array'.$final}[] = $sub;
}
我一直觉得我在模仿保罗,第二次我的回答与他非常相似。 我保证我不是故意这样做的。 但是,这是不同的,希望这可以帮到您。
$array2 = array();
foreach( $array AS $key => $sub ) {
foreach( $sub AS $item ) {
if( strpos( $item, 'overflow' ) !== FALSE ) { $array2[ $key ] = ''; }
}
}
$array2 = array_intersect_key( $array, $array2 );
$array1 = array_diff_key( $array, $array2 );
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.