検索
ホームページバックエンド開発PHPチュートリアルPHP配列定義、変数破壊、1次元配列ソート_PHPチュートリアル

PHP配列定義、変数破壊、1次元配列ソート_PHPチュートリアル

Jul 13, 2016 pm 04:59 PM
phpそして導入について変数そして意味選別配列記事破壊する

この記事では、まず PHP での配列の定義と配列の破棄について紹介し、次に例を使用して 1 次元データのソート方法を説明します。お困りの皆様の参考になれば幸いです。

PHP配列の定義

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

……
$array = array('1','two','three');
var_dump($array);

このコード スニペットの最初の行では、1 次元配列 $array が定義されています。 2 行目では、配列をフォーマットして出力します。

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

配列(3) {
[0]=>
文字列(3)「1つ」
[1]=>
文字列(3)「2」
[2]=>
文字列(5)「3」
}

それでは、お兄さん、出力結果を説明してください。まず、この配列の出力結果の最初の行です。 array(3) は、これが 3 つの要素を持つ配列であることを示します。 まず、要素No.0は長さ3の文字列(string(3))です...
残りの2つについては紙面の都合で割愛します…、これはどういう意味でしょうか?これは、PHP では、配列の添字を指定しない場合、独自に添字を最初から作成することを示しています。つまり、次の例を見てください。

コードは次のとおりですコードをコピー…… $array = array('one',"hello"=>'two','three'); var_dump($array);...今回は配列を定義する際に、2番目の要素に添字を指定しました(以降、この記事ではキー名と呼びます。添字は少し曖昧です!)。キー名 (こんにちは)、出力を見てみましょう:



コードは次のとおりですコードをコピー配列(3) { [0]=>あなたも私と同じように、最初の要素のキー名が 0 のままであるという非常に賢い現象を見たことがあると思います。これは、私たちが指定していないので理解できます。PHP 配列にはキー名が必要であり、PHP は次のようにします。独自のキー名を最初から作成することが推奨されており、2 番目の要素ではキー名を指定しましたが、PHP は私たちの意見を尊重してこのキー名を使用しました。複雑なのは 3 番目の要素です。 3 番目の要素は非常に単純に見えますが、キー名は指定されていません。PHP はキー名として最大の整数のキー名に 1 を自動的に追加します。しかし、最初の要素のキー名を「-5」に変更し、2 番目の要素のキー名を変更しない場合、結果はどうなるか考えたことはありますか?待ってみましょう:
文字列(3)「1つ」

["こんにちは"]=>
文字列(3)「2」
[1]=>
文字列(5)「3」
}


コードは次のとおりです

コードをコピー $array = array(-5=>'one',"hello"=>'two','three'); var_dump($array); …
……


3 番目の要素のキー名が -4 であるべきだと考えるのであれば、この考えは PHP4.3.0 より前は正しかったが、それ以降は間違っていたと言わせてください。PHP4 以降のバージョンです。 3.0. 次の結果が表示されます:

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

配列(3) {
[-5]=>
文字列(3)「1つ」
["こんにちは"]=>
文字列(3)「2」
[0]=>
文字列(5)「3」
}

はい、3 番目の要素は 0 から始まります。つまり、負の数がどれほど小さくても、次の要素が PHP によってキー名を定義するように求められた場合、0 から始まります。この場所の内容を覚えておいてください。既存のキー名の中で最大のものは依然として負の数であり、負の数がどれほど小さくても、PHP は次のキー名を 0 から開始します。

PHP 配列の破棄は、他の変数を破棄するのと同じように簡単です。
配列全体を破棄します: unset($array)
配列内の要素を破棄します: unset($array[-5])

実生活でもプログラミングの世界でも、秩序は常に重要です。秩序のない世界がどのようなものであるか想像できません。 PHP 配列も例外ではありません。 PHP には、PHP 配列をソートするための 4 つの関数セットが用意されています。最初の 3 つは 1 次元配列用で、4 番目の多次元配列については少し複雑です。 。

最初のグループ:sort と rsort、元の配列のインデックス関係を破壊しながら、PHP 配列キー値の順序 asc と逆順 desc に従ってソートします。実際には、から始まる数値インデックスを再構築します。インデックス削除後は0。ルーチンを見てみましょう:


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

$a = array("a"=>1,2);
並べ替え($a);
var_dump($a);

rsort($a);
var_dump($a);
?>

最初の出力結果、最初の出力を見てください:
配列(2) {
[0]=>
int(1)
[1]=>
int(2)
}
2 番目の出力:
配列(2) {
[0]=>
int(5)
[1]=>
int(4)
}


最初に定義したインデックス a が存在しないことがわかりました。それはどこにありますか?それはどこへ行くのですか?元のインデックス関係を気にしないのであれば、それらは無慈悲にも削除されたと断言できます。

2 番目の関数セット: asort と arsort。これら 2 つの関数は、配列の元のインデックス関係を保持できる限り、より強力です。上記の例の sort と rsort をこれら 2 つの関数に置き換えて、結果を確認してください。 :

コードは次のとおりです コードをコピー
配列(2) {
["a"]=>
int(1)
[0]=>
int(2)
}
配列(2) {
[0]=>
int(2)
["a"]=>
int(1)
}

这个一看就明白的,不用说了吧!

第三组PHP数组排序函数:krsort 和 ksort 这两个不同于以上两组,这两函数是对键名进行排序的,大家可以把上例的函数替换成这两个,看看具体运行结果,这里也不说了,不然这个文章写的就太长了,怕有些兄弟没有耐心看到本文的重点,虽然重点就在下边!

通过自定义函数对PHP数组进行排序,有三个函数分别是:
uasort 通过自定义函数对PHP数组的键值进行排序,并且保留原来的索引关系。
uksort 通过自定义函数对PHP数组的键名进行排序,并且保留原来的索引关系。
usort通过自定义函数对PHP数组的键值进行排序,并且删除原来的索引关系,从零开始建立新的索引。

这个地方当然需要一个例子:


 

输出结果:
array(4) {
  [0]=>
  int(1)
  [3]=>
  int(5)
  [1]=>
  int(4)
  [2]=>
  int(3)
}

,呵呵……是不是比不排序还乱呢?我们这里只是演示了使用的方法而已,具体你用到的时候自己搞吧!你要是不对这些数值进行操作之后再比较,例如我们这里:
 $a+=1;
 $b+=3;//改变这些值之后进行比较


在PHP手册中,一共定义了74个数组函数,涵盖了PHP数组的定义,赋值,排序,数值操作,比较,以及对数组的键名,键值反转……等等我们几乎能够想到的所有功能。有需要的同学可以去参考一下啊

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/631293.htmlTechArticle本文章先是介绍关于php中的数组定义与数组的销毁,之后再用一个实例来说明一维数据的排序方法,有需要的朋友可以参考一下,希望对大家有...
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
PHP依存性噴射コンテナ:クイックスタートPHP依存性噴射コンテナ:クイックスタートMay 13, 2025 am 12:11 AM

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

PHPの依存噴射対サービスロケーターPHPの依存噴射対サービスロケーターMay 13, 2025 am 12:10 AM

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

PHPパフォーマンス最適化戦略。PHPパフォーマンス最適化戦略。May 13, 2025 am 12:06 AM

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

PHPメールの検証:電子メールが正しく送信されるようにしますPHPメールの検証:電子メールが正しく送信されるようにしますMay 13, 2025 am 12:06 AM

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

PHPアプリケーションをより速くする方法PHPアプリケーションをより速くする方法May 12, 2025 am 12:12 AM

tomakephpapplicationsfaster、followthesesteps:1)useopcodecachinglikeopcacheTostoredscriptbytecode.2)最小化abasequeriesecachingingindexing.3)leveragephp7機能forbettercodeefficiency.4)

PHP依存性インジェクション:コードのテスト可能性を改善しますPHP依存性インジェクション:コードのテスト可能性を改善しますMay 12, 2025 am 12:03 AM

依存性注入(DI)は、明示的に推移的な依存関係によりPHPコードのテスト可能性を大幅に改善します。 1)DI分離クラスと特定の実装により、テストとメンテナンスが柔軟になります。 2)3つのタイプのうち、コンストラクターは、状態を一貫性に保つために明示的な式依存性を注入します。 3)DIコンテナを使用して複雑な依存関係を管理し、コードの品質と開発効率を向上させます。

PHPパフォーマンスの最適化:データベースクエリの最適化PHPパフォーマンスの最適化:データベースクエリの最適化May 12, 2025 am 12:02 AM

DatabaseQueryoptimizationInpholvesseveralstrategESTOEnhancePerformance.1)selectonlynlynlyndorycolumnStoredatedataTransfer.2)useindexingtospeedupdataretrieval.3)revenmecrycachingtostoreres sultsoffrequent queries.4)

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

SublimeText3 中国語版

SublimeText3 中国語版

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

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。