検索
ホームページバックエンド開発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怎么把负数转为正整数Apr 19, 2022 pm 08:59 PM

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

php怎么实现几秒后执行一个函数php怎么实现几秒后执行一个函数Apr 24, 2022 pm 01:12 PM

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php字符串有没有下标php字符串有没有下标Apr 24, 2022 am 11:49 AM

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

php怎么除以100保留两位小数php怎么除以100保留两位小数Apr 22, 2022 pm 06:23 PM

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

php怎么根据年月日判断是一年的第几天php怎么根据年月日判断是一年的第几天Apr 22, 2022 pm 05:02 PM

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

php怎么读取字符串后几个字符php怎么读取字符串后几个字符Apr 22, 2022 pm 08:31 PM

在php中,可以使用substr()函数来读取字符串后几个字符,只需要将该函数的第二个参数设置为负值,第三个参数省略即可;语法为“substr(字符串,-n)”,表示读取从字符串结尾处向前数第n个字符开始,直到字符串结尾的全部字符。

php怎么替换nbsp空格符php怎么替换nbsp空格符Apr 24, 2022 pm 02:55 PM

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\&nbsp\;||\xc2\xa0)/","其他字符",$str)”语句。

php怎么查找字符串是第几位php怎么查找字符串是第几位Apr 22, 2022 pm 06:48 PM

查找方法:1、用strpos(),语法“strpos("字符串值","查找子串")+1”;2、用stripos(),语法“strpos("字符串值","查找子串")+1”。因为字符串是从0开始计数的,因此两个函数获取的位置需要进行加1处理。

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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SublimeText3 英語版

SublimeText3 英語版

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

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

メモ帳++7.3.1

メモ帳++7.3.1

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

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境