長い間これをやっていなかった
分散していますか?
データベースから読み取られたデータのほとんどは、整然とした行と列を含む 2 次元配列です。
読み取った後、PHP を使用して計算すると、多くの垂直方向の計算が必要になります。多くの人は $array[record][field] に慣れていると思います。実際、配列の 1 次元キーと 2 次元キーをどのように割り当てるかを考える必要があります
たとえば、API から取得した行列配列の形式は固定されていますが、多くの人がレコードをたどって 2 次元の値を見つけたり、再帰を使用したりするのはとても面倒そうです。行と列を交換して計算します
squareArray.php
<?phpclass squareArray{ public function swapRowCol($inArr) { $mit = new MultipleIterator(MultipleIterator::MIT_KEYS_ASSOC); foreach($inArr as $key => $value) { $temArr = new ArrayIterator($value); $mit->attachIterator($temArr, $key); } $arr = array(); foreach($mit as $item) array_push($arr,$item); if (isset($inArr[0])) $arr = array_combine(array_keys($inArr[0]),$arr); return $arr; } public function swapRowColWithKey($inArr) { foreach($inArr as $k1=>$v1) foreach($v1 as $k2=>$v2) $arr[$k2][$k1] = $v2; return $arr; } public function intersect1st($arr1, $arr2, $key) { $arr[$key] = array_intersect($arr1[$key], $arr2[$key]);//match source's $key with target foreach($arr1 as $k=>$v) { if ($k == $key) continue; $arr[$k] = array_intersect_key($v, $arr[$key]); } return $arr; } public function intersect2nd($arr1, $arr2, $key) { foreach($arr2 as $v) $tmpArr[] = $v[$key]; foreach($arr1 as $k=>$v) if(in_array($v[$key], $tmpArr)) $arr[$k] = $v; return $arr; }}?>
squareArray.sample .php
これはその使用方法です。これを使用したことがない場合に備えて、書き方を思い出してもらうために簡単に書いています。
バグを見つけたら、自分で対処してください...
ディスカッションに返信 (解決策)
共有してくれてありがとう
ネストの書き方を学びましょう。配列の反復?
ネストされた配列の反復を記述する方法は?
それは私が考えていることではありません。あなたも貢献できます
ネストされた配列はどのようなものですか?
キーを考慮しない swapRowCol メソッドは、キーを考慮する swapRowColWithKey メソッドよりも複雑なのはなぜですか?
<?phpinclude('squareArray.php');//$array = array('id' => array('001', '002', '003'),'name' => array('张三', '李四', '王五'),'age' => array(22, 23, 11)); $array = array(array('id' => '001', 'name' => '张三', 'age' => 22),array('id' => '002', 'name' => '李四', 'age' => 23),array('id' => '003', 'name' => '王五', 'age' => 11)); $a = array( 0 => array('action_id' => 3), 1 => array('action_id' => 2), 2 => array('action_id' => 1), 3 => array('action_id' => 7), 4 => array('action_id' => 11),);$b = array( 0 => array('action_id' => 3, 'type' => 0, 'order_num' => 67), 1 => array('action_id' => 2, 'type' => 0, 'order_num' => 66), 2 => array('action_id' => 1, 'type' => 0, 'order_num' => 65), 3 => array('action_id' => 7, 'type' => 0, 'order_num' => 64), 8 => array('action_id' => 14, 'type' => 0, 'order_num' => 40), 13 => array('action_id' => 11, 'type' => 0, 'order_num' => 30),);//交换矩阵数组一维和二维键值例子$obj=new squareArray();$arr=$obj->swapRowCol($array);var_export($arr);//交换矩阵数组一维和二维键值例子(保留数值键名)$arr=$obj->swapRowColWithKey($b);var_export($arr);//根据指定key求二维数组矩阵数组交集(一维key)$key='action_id';$aa=$obj->swapRowCol($a);$bb=$obj->swapRowCol($b);$arr = $obj->intersect1st($bb, $aa, $key);//$b和$a自己定义吧,我懒得输入了$arr=$obj->swapRowCol($arr);var_export($arr);//根据指定key求二维数组矩阵数组交集(二维key)$key='action_id';$arr = $obj->intersect2nd($b, $a, $key);//$b和$a自己定义吧,我懒得输入了var_export($arr);exit;?>
ネストされた配列とはどのようなものですか?
キーを考慮しない swapRowCol メソッドは、キーを考慮する swapRowColWithKey メソッドよりも複雑なのはなぜですか? 私はこれをよく使います
public function swapRowCol($inArr) { return call_user_func_array('array_merge_recursive', $inArr); }
はは、出力が正しければ、もちろん上手です
ちなみに、私は SPL の書き方を練習していましたが、基本的に swapRowCol() を使用したことはなく、常に swapRowColWithKey() を使用していました。ので、二度と使用することはありませんでした。
ネストされた配列とはどのようなものですか?
入れ子配列を正しく理解すると、配列内に入れ子配列 (セル配列?入れ子配列?) が存在することになります。
入れ子配列とはどのようなものですか。のように?
では、キーが考慮されていない場合は、それは考慮されていません。 #5 のメソッドを使用するのが適切です
私は 1 年間 php を使ってきましたが、このオブジェクトを初めて目にしました
$mit = new MultipleIterator(MultipleIterator::MIT_KEYS_ASSOC);
学んだ、マークする
共有してくれてありがとう
とても良いです。まずは集めてください
とても混んでいます。改行、中括弧。
とても混んでいます。改行、中括弧。
モニターは 1920 ピクセルなので、改行がさらに混雑します
ぜひ学びに来てください
$mit = new MultipleIterator(MultipleIterator:: MIT_KEYS_ASSOC);
なんて変化だ... ...
この文はどういう意味ですか
良いもの、集める価値があります
私は 1 年間 php を使ってきましたが、このオブジェクトを初めて見ました
$mit = new MultipleIterator(MultipleIterator::MIT_KEYS_ASSOC); 以上です、ああ...
この文はどういう意味ですか
マニュアルの SPL の章を確認してください
php5.5 では array_column 関数が追加されています、これは使用できます
私も昨日の昼に質問に答えて、マニュアルを見る前に調べましたが、よく見ると使ったことがないような気がしました。新しく追加されたことに気づきました
これは良いですね、多くのフィルターとトラバーサルが減ります
返信をくれた人はもう削除されましたか?
自分で書くのは簡単です
public function swapRowCol($inArr) { return call_user_func_array('array_merge_recursive', $inArr); }
(
[0] => 3
[1] => 2
[2] => 1
[3] = > 7
[8] => 14
[13] => 11
)
初心者、まだわかりません。
マークして、時間があるときに見てください
マスター、技術的なポイントがたくさんあります。 行きます。 。 。 1ヶ月プレイしてもまだ200ポイント未満です。
私たちは皆素晴らしい人です、それについて学んでください、ありがとう
とてもたくさんのポイント
通りがかりに見に行きました。 。 。 。 。
学んで学んでください
コレクション…………
共有してくれてありがとう、学びました
共有してくれてありがとう!私たちはまだまだ学び続ける必要があります!
学びました。 。 。 。 。やあ、私たちはとても弱いです
朝早くから良いことがあります、投稿者に感謝します
投稿者を助けてください php SQL インジェクションの脆弱性が機能しません。 。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











PHPでは、Password_hashとpassword_verify関数を使用して安全なパスワードハッシュを実装する必要があり、MD5またはSHA1を使用しないでください。 1)password_hashセキュリティを強化するために、塩値を含むハッシュを生成します。 2)password_verifyハッシュ値を比較して、パスワードを確認し、セキュリティを確保します。 3)MD5とSHA1は脆弱であり、塩の値が不足しており、最新のパスワードセキュリティには適していません。

PHPは、サーバー側で広く使用されているスクリプト言語で、特にWeb開発に適しています。 1.PHPは、HTMLを埋め込み、HTTP要求と応答を処理し、さまざまなデータベースをサポートできます。 2.PHPは、ダイナミックWebコンテンツ、プロセスフォームデータ、アクセスデータベースなどを生成するために使用され、強力なコミュニティサポートとオープンソースリソースを備えています。 3。PHPは解釈された言語であり、実行プロセスには語彙分析、文法分析、編集、実行が含まれます。 4.PHPは、ユーザー登録システムなどの高度なアプリケーションについてMySQLと組み合わせることができます。 5。PHPをデバッグするときは、error_reporting()やvar_dump()などの関数を使用できます。 6. PHPコードを最適化して、キャッシュメカニズムを使用し、データベースクエリを最適化し、組み込み関数を使用します。 7

PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

PHPは、電子商取引、コンテンツ管理システム、API開発で広く使用されています。 1)eコマース:ショッピングカート機能と支払い処理に使用。 2)コンテンツ管理システム:動的コンテンツの生成とユーザー管理に使用されます。 3)API開発:RESTFUL API開発とAPIセキュリティに使用されます。パフォーマンスの最適化とベストプラクティスを通じて、PHPアプリケーションの効率と保守性が向上します。

PHPタイプは、コードの品質と読みやすさを向上させるためのプロンプトがあります。 1)スカラータイプのヒント:php7.0であるため、基本データ型は、int、floatなどの関数パラメーターで指定できます。 3)ユニオンタイプのプロンプト:PHP8.0であるため、関数パラメーターまたは戻り値で複数のタイプを指定することができます。 4)Nullable Typeプロンプト:null値を含めることができ、null値を返す可能性のある機能を処理できます。

PHPは依然として動的であり、現代のプログラミングの分野で重要な位置を占めています。 1)PHPのシンプルさと強力なコミュニティサポートにより、Web開発で広く使用されています。 2)その柔軟性と安定性により、Webフォーム、データベース操作、ファイル処理の処理において顕著になります。 3)PHPは、初心者や経験豊富な開発者に適した、常に進化し、最適化しています。

PHPは、特に迅速な開発や動的なコンテンツの処理に適していますが、データサイエンスとエンタープライズレベルのアプリケーションには良くありません。 Pythonと比較して、PHPはWeb開発においてより多くの利点がありますが、データサイエンスの分野ではPythonほど良くありません。 Javaと比較して、PHPはエンタープライズレベルのアプリケーションでより悪化しますが、Web開発により柔軟性があります。 JavaScriptと比較して、PHPはバックエンド開発により簡潔ですが、フロントエンド開発のJavaScriptほど良くありません。

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。
