ホームページ >バックエンド開発 >PHPチュートリアル >多次元配列から空のレコードを削除する方法についてアドバイスを求める
空のレコードをすべて削除したいのですが、削除後にいくつかのキーがなくなったので、キーを再配置する必要があります
たとえば、 $arr['0'] $arr['3' を削除するとします。 ] $arr ['5'] の場合、並べ替えられた結果は $arr['0'] $arr['1'] $arr['2'] $arr['3'] $arr['4'] になります。 $arr[ '5']。 。 。 。
もちろん、画像は 2 次元配列です。
オンラインで試したメソッドは使いにくいです。
function array_no_empty($arr) {
if (is_array($arr)) {
foreach ( $arr as $k => $v ) {
if (empty($v)) unset($arr[$k]);
elseif (is_array($v); ) {
$arr[$ k] = array_no_empty($v);
}
}
}
return $arr; }
これは役に立ちませんね。真ん中の array_no_empty が未定義か何かだと言い続けます
他に方法はありますか? ありがとうございます
しかし、問題があります。空のメンバー 配列
$a = array( array('a' => 0, 'b'=> ''), array('a' => 0, 'b'=> ''), array('a' => 1, 'b'=> '2'),);print_r(array_values(array_no_empty($a)));function array_no_empty($arr) { if (is_array($arr)) { foreach ( $arr as $k => $v ) { if (empty($v)) unset($arr[$k]); elseif (is_array($v)) { $arr[$k] = array_no_empty($v); } } } return $arr;}
Array( [0] => Array ( ) [1] => Array ( ) [2] => Array ( [a] => 1 [b] => 2 ))
$a = array( array('a' => 0, 'b'=> ''), array('a' => 0, 'b'=> ''), array('a' => 1, 'b'=> '2'),);print_r(array_no_empty($a));function array_no_empty($arr) { if (is_array($arr)) { foreach ( $arr as $k => $v ) { if (empty($v)) unset($arr[$k]); elseif (is_array($v)) { $t = array_no_empty($v); if($t) $arr[$k] = $t; else unset($arr[$k]); } } } return $arr;}
Array( [2] => Array ( [a] => 1 [b] => 2 ))
$a = array( array('a' => 0, 'b'=> ''), array('a' => 0, 'b'=> ''), array('a' => 1, 'b'=> '2'),);print_r(array_values(array_no_empty($a)));function array_no_empty($arr) { if (is_array($arr)) { foreach ( $arr as $k => $v ) { if (empty($v)) unset($arr[$k]); elseif (is_array($v)) { $t = array_no_empty($v); if($t) $arr[$k] = $t; else unset($arr[$k]); } } } return $arr;}
Array( [0] => Array ( [a] => 1 [b] => 2 ))を並べ替えることができます