ホームページ > バックエンド開発 > PHPチュートリアル > 3 PHP_PHP チュートリアルで多次元配列を 1 次元配列に変換する方法の例

3 PHP_PHP チュートリアルで多次元配列を 1 次元配列に変換する方法の例

WBOY
リリース: 2016-07-13 10:36:01
オリジナル
732 人が閲覧しました

多くの場合、必要なのは 1 次元配列だけであり、1 次元配列の方が使いやすいため、多次元配列を 1 次元配列に変換する必要があります。 PHPの一次元配列?多次元配列を 1 次元配列に変換する 3 つの例を見てみましょう:
1. foreach を使用します

コードをコピーします コードは次のとおりです:
関数 arr_foreach ($arr)
{
static $tmp=array();
if (!is_array ($arr))
{
return false;
}
foreach ($arr as $val )
{
if (is_array ($ val) )
($val); $a = array(1,2=>array(3,4=>); ;array(5,6)),7);
print_r(arr_foreach($a));
?>


2. for ループを使用すると、数値の添え字を持つ配列のみを走査できます




コードをコピー

コードは次のとおりです:

function arr_foreach($arr)
{ static $tmp=array();
for($i=0; $i { i]; $tmp を返します。 }
//呼び出し例
$a = array(1,array(3,array(5,6)),7);
print_r(arr_foreach($a));
?>


3. while



を使用してコピーしますコード

コードは次のとおりです:

/**
* 多次元配列を 1 次元配列に変換します
* @author echo
* @link http://www.jb51.net/
* @param array $arr
* @return array
*/
function ArrMd2Ud($arr) { #値の最初の要素をアドレス割り当てのコンテナとして使用します。
$ar_room = &$arr[key($arr)]; #最初のコンテナは配列ではありません if (!is_array($ar_room)) {
#配列に変換します
$ar_room = array($ar_room) ); } #ポインタを下に移動します next($arr); #Traverse
while (list($k, $v) = each($arr)) {
#配列の場合は再帰的に掘ります、そうでない場合は、配列に転送します
$v = is_array($v) ? call_user_func(__FUNCTION__, $v) : array($v);
#再帰マージ
$ar_room = array_merge_recursive($ar_room, $v);
#現在の添え字要素の配列を解放します
unset($arr[$k]);
}
return $ar_room;
}


呼び出し例:



コードをコピー

コードは次のとおりです:


$arr = array(1, 2, 3 => array(1, 2, 'ar' => array(1, 2 => ; array('a', 'b'))), array('ar' => array(3, 4)));
print_r(ArrMd2Ud($arr));

出力:



コードをコピー
コードは次のとおりです:


Array( [0] => 1 [1] => 2 [2] => 1
[3] => 2
[4] => 1
[5] => a
[6] => 3
[8] =>

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/741257.html技術記事多くの場合、必要なのは 1 次元配列だけであり、1 次元配列の方が使いやすいため、多次元配列を 1 次元配列に変換する必要があります。 PHP で多次元配列を 1 次元の数値に変換する方法。 ...
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート