分散していますか?
データベースから読み取られたデータのほとんどは、整然とした行と列を含む 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); }Array
(
[0] => 3
[1] => 2
[2] => 1
[3] = > 7
[8] => 14
[13] => 11
)
初心者、まだわかりません。
マークして、時間があるときに見てください
マスター、技術的なポイントがたくさんあります。 行きます。 。 。 1ヶ月プレイしてもまだ200ポイント未満です。
私たちは皆素晴らしい人です、それについて学んでください、ありがとう
とてもたくさんのポイント
通りがかりに見に行きました。 。 。 。 。
学んで学んでください
コレクション…………
共有してくれてありがとう、学びました
共有してくれてありがとう!私たちはまだまだ学び続ける必要があります!
学びました。 。 。 。 。やあ、私たちはとても弱いです
朝早くから良いことがあります、投稿者に感謝します
投稿者を助けてください php SQL インジェクションの脆弱性が機能しません。 。

thesecrettokeepingaphp-poweredwebsterunningsmootlyunderheavyloadinvolvesseveralkeystrategies:1)emform opcodecoduceSciptionexecutiontime、2)aatabasequerycachingwithiThing withiThistolessendavasoload、

コードをより明確かつ維持しやすくするため、依存関係が関心(DI)に注意する必要があります。 1)DIは、クラスを切り離すことにより、よりモジュール化されます。2)テストとコードの柔軟性の利便性を向上させ、3)DIコンテナを使用して複雑な依存関係を管理しますが、パフォーマンスの影響と円形の依存関係に注意してください。

はい、最適化されたAphPossibleandessention.1)CachingingusapCutoredatedAtabaseload.2)最適化、効率的なQueries、およびConnectionPooling.3)EnhcodeCodewithBultinctions、Avoididingglobalbariables、およびUsingopcodeching

keyStrategIestsoSificlyvoostphpappliceperformanceare:1)useopcodecachinglikeToreexecutiontime、2)最適化abaseの相互作用とプロペラインデックス、3)3)構成

aphpDependencyInjectionContaineriSATOULTAINATINAGECLASSDEPTINCIES、強化測定性、テスト可能性、および維持可能性。

SELECT DEPENTENCINGINOFCENT(DI)大規模なアプリケーションの場合、ServicElocatorは小さなプロジェクトまたはプロトタイプに適しています。 1)DIは、コンストラクターインジェクションを通じてコードのテスト可能性とモジュール性を改善します。 2)ServiceLocatorは、センター登録を通じてサービスを取得します。これは便利ですが、コードカップリングの増加につながる可能性があります。

phpapplicationscanbeoptimizedforspeedandEfficiencyby:1)enabingopcacheinphp.ini、2)PreparedStatementswithpordatabasequeriesを使用して、3)LoopswithArray_filterandarray_mapfordataprocessing、4)の構成ngincasaSearverseproxy、5)

PHPemailvalidationinvolvesthreesteps:1)Formatvalidationusingregularexpressionstochecktheemailformat;2)DNSvalidationtoensurethedomainhasavalidMXrecord;3)SMTPvalidation,themostthoroughmethod,whichchecksifthemailboxexistsbyconnectingtotheSMTPserver.Impl


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

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

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

Dreamweaver Mac版
ビジュアル Web 開発ツール

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!
