PHP дээр массив сурах. php дээр массив зарлах, массивын төрөл, элементүүдтэй ажиллах Массивын элементүүдийг нэмэх


Ассоциатив массив- өвөрмөц түлхүүрүүд болон ассоциатив утгуудын цуглуулгыг тодорхойлоход ашигладаг орлуулшгүй өгөгдлийн төрөл - PHP зэрэг бүх програмчлалын хэлний үндсэн элемент юм. Үнэн хэрэгтээ, ассоциатив массивууд вэб програмчлалд маш чухал үүрэг гүйцэтгэдэг тул PHP нь массив өгөгдлийг төсөөлж болохуйц бүх аргаар удирдах боломжтой төрөл бүрийн функц, шинж чанаруудын дэмжлэгийг агуулдаг. Энэхүү өргөн хүрээний дэмжлэг нь программ дахь массивыг удирдах хамгийн үр дүнтэй арга замыг хайж буй хөгжүүлэгчдэд асар их байх болно. Энэ нийтлэлд би танд өгөгдлөө таслах, хэрчиж, таслах зэрэгт туслах 10 зөвлөгөөг өгөх болно.

1. Массивын элементүүдийг нэмэх.

PHP нь чөлөөтэй бичдэг хэл бөгөөд өөрөөр хэлбэл массив болон түүний хэмжээг нарийвчлан тайлбарлах шаардлагагүй болно. Үүний оронд массивыг нэгэн зэрэг зарлаж, бөглөж болно:

$capitals = array("Алабама" => "Монтгомери", "Аляск" => "Juneau", "Arizona" => "Феникс");

Нэмэлт массив элементүүдийг дараах байдлаар хавсаргаж болно.

$capitals["Арканзас"] = "Бяцхан рок";

Хэрэв та дугаарлагдсан массивтай ажиллаж байгаа бол элементүүдийг (массивын эхэнд) нэмж, нарийвчилсан нэртэй функцийг ашиглан элементүүдийг нэмэхийг илүүд үздэг бол array_push() болон array_unshift() функцуудыг анхаарч үзээрэй (эдгээр функц нь ассоциатив массивтай ажиллахгүй). .

2. Массивын элементүүдийг устгах

Массиваас элемент устгахын тулд unset() функцийг ашиглана:

Тохируулаагүй($capitals["Калифорни"]);

Дугаарлагдсан массивуудтай ажиллахдаа массивын элементүүдийг устгахад илүү эрх чөлөөтэй болно. Өөрөөр хэлбэл, та массивын эхэн ба төгсгөлөөс элементийг хасахын тулд array_shitt() болон array_pop() функцуудыг ашиглаж болно.

3. Түлхүүр болон утгыг солих

Та $states нэртэй шинэ массив үүсгэхийг хүсч байна гэж бодъё, үүнд муж улсын нийслэлүүд нь индекс, мужууд нь өөрөө ассоциатив утгууд байх болно. Энэ ажлыг (түлхүүр ба утгыг солих) array_flip() функцийг ашиглан хялбархан шийддэг:

$capitals = array("Алабама" => "Монтгомери", "Аляск" => "Juneau", "Arizona" => "Феникс"); $төлөв = array_flip ($ капитал); // $states = array(// "Монтгомери" => стринг "Алабама", // "Juneau" => "Аляск" мөр, // "Финикс" => "Аризона" мөр //);

4. Массивуудыг нэгтгэх

Өмнөх массивыг вэбд суурилсан "флаш карт" (флашкарт - текст, зураг бүхий карт (гадаад хэл заахад ашигладаг)) үйлчилгээтэй хослуулан ашигласан бөгөөд та оюутнуудад зөвхөн мэдлэгээ шалгах боломжийг олгохыг хүссэн гэж бодъё. дэлхийн нийслэлүүдийн тухай төдийгүй АНУ-ын нийслэлүүдийн тухай. Та array_merge() функцийг ашиглан массивыг (төрийн том үсгээр) массивтай (дэлхийн том үсгээр) нэгтгэж болно:

$stateCapitals = массив("Алабама" => "Монтгомери", "Аляск" => "Juneau", "Аризона" => "Финикс"); $countryCapitals = array("Австрали" => "Канберра", "Австри" => "Вена", "Алжир" => "Алжир"); $capitals = array_merge($stateCapitals, $countryCapitals);

5. Массивын утгуудыг засварлах

Массиваас олдсон өгөгдөл нь том үсгийн хэрэглээтэй холбоотой алдаа агуулсан байж магадгүй бөгөөд та өгөгдлийг мэдээллийн санд оруулахаасаа өмнө эдгээр алдааг засахыг хүсч байна гэж бодъё. Энэ тохиолдолд та array_map() функцийг ашиглан массивын элемент бүрт буцааж дуудах функцийг ашиглаж болно:

Функц том үсэг($element) ( $element = strtolower($element); // Бүх үсгийг жижиг үсгээр хөрвүүлэх буцах ucwords($element); // Мөр дэх үг бүрийн эхний тэмдэгтийг том үсгээр хөрвүүлэх ) $capitals = массив( " Алабама" => "montGoMERy", "Аляск" => "Juneau", "Arizona" => "phoeniX"); $capitals = array_map("capitals", $capitals);

6. Түлхүүрээр массивуудыг эрэмбэлэх

Flashcard програмууд (флашкарт - текст, зураг бүхий карт (гадаад хэл заахад ашигладаг)) картуудыг тодорхой аргаар, жишээлбэл, цагаан толгойн дарааллаар эрэмбэлэх зэрэг сургалтын янз бүрийн арга техникийг ашигладаг. Та ksort() функцийг ашиглан ассоциатив массивуудыг түлхүүрээр ангилж болно:

$capitals = массив("Аризона" => "Финикс", "Аляск" => "Juneau", "Алабама" => "Монтгомери"); ksort ($ том);

7. Массивын дарааллыг санамсаргүй болгох

Та shuffle() функцийг ашиглан элементүүдийг санамсаргүй байдлаар хольж болно:

$capitals = массив("Аризона" => "Финикс", "Аляск" => "Juneau", "Алабама" => "Монтгомери"); холих ($ том); foreach ($k=>$v гэсэн том үсэг) echo "$k: $v
";

Үр дүн:

гаралт гэдгийг анхаарна уу Бид ассоциатив массив биш, харин тоон массивыг авдаг.

Хэрэв та массивыг санамсаргүй байдлаар сонгохын оронд санамсаргүй байдлаар утгыг сонгохыг хүсвэл array_rand() функцийг ашиглана уу.

8. Түлхүүр болон утгууд байгаа эсэхийг тодорхойлох

Та массивын элементүүд байгаа эсэхийг тодорхойлохын тулд in_array() функцийг ашиглаж болно:

$capitals = массив("Аризона" => "Финикс", "Аляск" => "Juneau", "Алабама" => "Монтгомери"); if (in_array("Juneau", $capitals)) ( echo "Оршиж байна!"; ) else ( echo "Байхгүй!"; )

Массивын түлхүүрүүд байгаа эсэхийг тодорхойлох чадвар бага мэдэгддэг. Үүнийг array_key_exists() функц ашиглан хэрэгжүүлдэг:

$capitals = массив("Аризона" => "Финикс", "Аляск" => "Juneau", "Алабама" => "Монтгомери"); if (array_key_exists("Аляск", $capitals)) ( цуурай "Түлхүүр байна!"; ) else ( цуурай "Түлхүүр байхгүй!"; )

9. Массив хайж байна

Хэрэглэгчид тухайн нийслэлтэй холбоотой мужийг хялбархан олохын тулд та флаш карт дээр хайх боломжтой эх сурвалжийг оруулахыг хүсч болно. Үүнийг array_search() функцийг ашиглан хийж болно (энэ функц нь массиваас өгөгдсөн утгыг хайж, харгалзах түлхүүрийг буцаана):

$capitals = массив("Аризона" => "Финикс", "Аляск" => "Juneau", "Алабама" => "Монтгомери"); $state = array_search("Juneau", $capitals); // $state = "Аляск"

10. PHP стандарт номын сан

PHP стандарт номын сан (SPL) нь хөгжүүлэгчдэд өгөгдлийн бүтэц, интерфэйс, үл хамаарах зүйлүүд болон PHP-ийн өмнө нь сайрхаж чадахгүй байсан бусад боломжуудыг олгодог. Эдгээр шинж чанаруудын дунд объект хандалтат синтакс ашиглан массивыг давтах (давтах) чадвар байдаг.

$capitals = массив("Аризона" => "Финикс", "Аляск" => "Juneau", "Алабама" => "Монтгомери"); $arrayObject = шинэ ArrayObject($капитал); foreach ($arrayObject as $state => $capital) ( printf("%s-н капитал нь %s"
", $state, $capital); ) // Аризонагийн нийслэл нь Финикс юм // Аляскийн нийслэл нь Жунау // Алабамагийн нийслэл нь Монтгомери юм.

Энэ бол SPL-д багтсан гайхалтай шинж чанаруудын зөвхөн нэг юм. Дэлгэрэнгүй мэдээллийг PHP баримтаас үзнэ үү.

Сүүлийн шинэчлэлт: 2015.11.1

Массив нь өгөгдөл эсвэл элементийн багцыг хадгалахад зориулагдсан. Массив дахь элемент бүр өөрийн гэсэн өвөрмөц түлхүүр, утгатай байдаг. Тиймээс утасны загваруудын жагсаалтыг массиваар хадгалъя:

"; ?>

Энэ нь дөрвөн элемент бүхий $phones массив үүсгэдэг. Массив дахь элемент бүр нь түлхүүр утгын хос юм. Тиймээс эхний элемент $phones = "Nokia N9" нь түлхүүр - 0 тоо, утга нь "Nokia N9" мөртэй байна. Ийм массивын тоон товчлууруудыг мөн индекс гэж нэрлэдэг.

Та массив дахь элементийн тоог олохын тулд count() функцийг ашиглаж болно. Түлхүүрүүд нь 0-ээс 3 хүртэлх дарааллаар ордог бөгөөд массивын хэмжээг мэддэг тул та массивын элементүүдийг for давталт дээр харуулах боломжтой.

Элементүүдийн түлхүүр ба утгуудын хоорондын хамаарлыг илүү тодорхой болгохын тулд бид print_r функцийг ашиглан массивыг хэвлэнэ.

Print_r ($ утас);

Бид дараах үр дүнг авах болно.

Массив ( => Nokia N9 => Samsung Galaxy ACE II => Sony Xperia Z3 => Samsung Galaxy III)

Энэхүү массив үүсгэх нь дараахтай тэнцүү байх болно:

"; ?>

Хэрэв элементийн түлхүүр заагаагүй бол PHP нь тоонуудыг түлхүүр болгон ашигладаг. Энэ тохиолдолд товчлууруудын дугаарлалт тэгээс эхэлж, шинэ түлхүүр бүр нэгээр нэмэгддэг.

Массив дахь элементийн түлхүүрийг мэдсэнээр бид энэ элементэд хандаж, утгыг нь авах эсвэл өөрчлөх боломжтой.

// 1 товчлуураар элемент авах $myPhone = $phones; echo "$myPhone
"; // шинэ утгыг оноож байна $phones = "Samsung X650"; echo "$phones"
";

Гэхдээ зөвхөн бүхэл тоо төдийгүй мөрүүдийг түлхүүр болгон ашиглаж болно.

Ийм массивыг бас нэрлэдэг ассоциатив.

массив оператор

Дээр дурдсаныг массив үүсгэх нэг арга гэж үзсэн. Гэхдээ array() операторыг ашиглах өөр нэг зүйл бий.

array() оператор нь олон тооны элементүүдийг авдаг. Энд бас түлхүүрүүдийг тодорхой заагаагүй болно. Тиймээс РНР автоматаар элементүүдийг тэгээс эхлэн дугаарладаг. Гэхдээ бид элемент бүрт түлхүүр зааж өгч болно:

"iPhone5", "samsumg"=>"Samsung Galaxy III", "nokia" => "Nokia N9", "sony" => "Sony XPeria Z3"); echo $phones["samsumg"]; ?>

=> үйлдэл нь түлхүүрийг тодорхой утгад буулгах боломжийг олгодог.

Ассоциатив массивууд дээр давталт хийх

Дээрээс бид массивын бүх элементүүдийг харуулахын тулд for давталтыг хэрхэн ашиглахыг үзсэн бөгөөд энд товчлуурууд нь 0-ээс 3 хүртэлх тоогоор дараалан өгөгддөг. Гэхдээ энэ нь ассоциатив массивтай ажиллахгүй. Мөн тэдний хувьд PHP дээр тусгай төрлийн гогцоо байдаг - foreach... as :

"iPhone5", "samsumg"=>"Samsung Galaxy III", "nokia" => "Nokia N9", "sony" => "Sony XPeria Z3"); foreach ($ утаснууд $ зүйл) echo "$ зүйл
"; ?>

Foreach гогцоонд бүх элементүүдийг массиваас дараалан авч, утгыг нь as түлхүүр үгийн ард заасан хувьсагчид байрлуулна. Энэ тохиолдолд $phones массивын бүх дөрвөн утгыг $item хувьсагчд ээлжлэн байрлуулна. Массиваас сүүлчийн элементийг олж авахад гогцоо дуусна.

Foreach давталт нь зөвхөн утгуудыг төдийгүй элементийн түлхүүрүүдийг задлах боломжийг олгодог:

"iPhone5", "samsumg"=>"Samsung Galaxy III", "nokia" => "Nokia N9", "sony" => "Sony XPeria Z3"); foreach($түлхүүр гэсэн утсууд=>$утга) echo "$түлхүүр => $утга
"; ?>

Энд давталтын элементүүдийг давтах үед элементийн түлхүүрийг $key хувьсагч руу, түүний утгыг $value хувьсагч руу шилжүүлнэ.

Foreach давталтын өөр хувилбар бол жагсаалт болон функц бүрийг ашиглах явдал юм:

"iPhone5", "samsumg"=>"Samsung Galaxy III", "nokia" => "Nokia N9", "sony" => "Sony XPeria Z3"); байхад (жагсаалт($ түлхүүр, $ үнэ цэнэ) = тус бүр ($ утас)) echo "$ түлхүүр => $ үнэ цэнэ
"; ?>

Функц бүр худал буцах хүртэл while давталт ажиллана. Функц бүр нь $phones массивын элементүүдээр дамжиж, элементийн түлхүүр болон утгыг агуулсан массив болгон буцаана. Дараа нь энэ массивыг жагсаалтын функц руу шилжүүлж, хаалт доторх хувьсагчдад массивын утгыг онооно. Функц бүр $phones массивын элементүүдийг давтаж дуусах үед энэ нь худал гэж буцах ба while давталт дуусна.

Олон хэмжээст массив

Өмнөх жишээнүүдэд зөвхөн нэг хэмжээст массивыг авч үзсэн бөгөөд элементийн утгууд нь тоо, мөрүүдийг төлөөлдөг. Гэхдээ РНР-д массив нь олон хэмжээст байж болно, өөрөөр хэлбэл массивын элемент нь өөрөө массив байдаг. Жишээлбэл, олон хэмжээст массив үүсгэцгээе:

массив("iPhone5", "iPhone5s", "iPhone6") , "samsumg"=>массив("Samsung Galaxy III", "Samsung Galaxy ACE II"), "nokia" => массив("Nokia N9", "Nokia" Lumia 930"), "sony" => массив("Sony XPeria Z3", "Xperia Z3 Dual", "Xperia T2 Ultra")); foreach ($утаснууд $бренд => $зүйлүүд) ( echo "

$ брэнд

"; цуурай "
    "; foreach ($ зүйл гэж $ түлхүүр => $ үнэ цэнэ) ( цуурай "
  • $ үнэ цэнэ
  • "; ) цуурай "
"; } ?>

Гарах үед бид 4 жагсаалтыг авна.

Өгөгдсөн элементэд хандахын тулд та товчлууруудыг дөрвөлжин хаалтанд зааж өгөх ёстой. Жишээлбэл, эхний массивын эхний элементийг харцгаая. Эхний массивын түлхүүр нь "алим" бөгөөд эхний массивын эхний элементийн түлхүүр нь 0 тоо тул (түлхүүрүүдийг бид тодорхой заагаагүй тул):

echo $phones["алим"];

Үүний нэгэн адил та гурав дахь массивын хоёр дахь элементийг авч болно:

echo $phones["nokia"];

Үүрлэсэн массивууд нь ассоциатив массивуудыг төлөөлдөг гэж бодъё:

массив("алим" => "iPhone5", "samsumg" => "Samsung Galaxy III", "nokia" => "Nokia N9"), "таблет" => массив("lenovo" => "Lenovo IdeaTab A3500" , "samsung" => "Samsung Galaxy Tab 4", "алим" => "Apple iPad Air")); foreach ($техникийг $бүтээгдэхүүн => $ зүйл) ( echo "

$ бүтээгдэхүүн

"; цуурай "
    "; foreach ($ зүйл гэж $ түлхүүр => $ үнэ цэнэ) ( цуурай "
  • $ түлхүүр: $ үнэ цэнэ
  • "; ) цуурай "
"; ) // элементүүдийн аль нэгэнд өөр утгыг оноох $technics["phones"]["nokia"] = "Nokia Lumnia 930"; // энэ утгыг харуулах echo $technics["phones"]["nokia"] ; ? >

Хичээл нь php дахь массивтай ажиллах боломжууд, массивын мэдэгдэл, массивын төрлүүд: олон хэмжээст ба ассоциатив массивуудын талаар авч үзэх болно.

  1. Тоон индекс бүхий массив
  2. $fruits = "алим"; $fruits = "лийр"; $fruits = "улбар шар"; $fruits = "гүйлс";

    Массив эхлүүлэх энэ хувилбарыг өнөөдөр бараг ашигладаггүй. Массивтай ажиллах дараах хувилбарыг ашигладаг.

  3. Ассоциатив массив
  4. Энэхүү массив үүсгэх сонголт нь массив объектыг ашигладаг:

    $fruits = массив(1 => "алим", 2 => "лийр", 3 => "улбар шар", 4 => "гүйлс"); // PHP 5.4-аас хойш $fruits = массив[ 1 => "алим", 2 => "лийр", 3 => "улбар шар", 4 => "гүйлс" ];

    Массивын элементүүдэд хандах

    1 2 3 4 5 6 7 8 $fruits [ 0 ] = "алим" ; $fruits [ 1 ] = "лийр" ; $fruits [ 2 ] = "улбар шар" ; $fruits [ 3 ] = "гүйлс" ; цуурай "Масивын эхний элемент нь". $fruits [ 0 ] . "
    "; цуурай "Масивын хоёр дахь элемент нь". $жимс [ 1 ] . "
    "; цуурай "Масивын гурав дахь элемент нь". $жимс [2] . "
    " ;

    $fruits = "алим"; $fruits = "лийр"; $fruits = "улбар шар"; $fruits = "гүйлс"; echo "Масивын эхний элемент нь ". $ жимс."
    "; echo "Масивын хоёр дахь элемент нь ". $fruits ."
    "; echo "Масивын гурав дахь элемент нь ". $fruits ."
    ";

    Програмыг ажиллуулсны үр дүн нь:

    Чухал:Ассоциатив массив дахь элементийн индекс нь тоо биш, харин үг (төрөл) байж болно. мөр)

    Жишээ авч үзье:

    Жишээ:Оюутны нэр, овог, насны утгыг агуулсан массив оюутныг үүсгэ. Массивын элементүүдийн утгыг харуулах

    $Оюутан = массив("Нэр" => Жон, "Овог" => Смит, "Нас" => 20); echo "хэрэглэгчийн нэр" . $student["Нэр"] . "


    ";

    $student["Нэр"] = "Жон"; $student["овог"] = "Смит"; $Оюутан["Нас"] = 20; echo "хэрэглэгчийн нэр" . $student["Нэр"] . "
    "; echo "хэрэглэгчийн нэр " . $student["Овог"] ."
    "; echo "хэрэглэгчийн нас " . $student["Age"] ."
    ";

    Үр дүн:

    Чухал:Мөрний товчлуурууд (индекс) үргэлж хашилтанд байх ёстой

    Түлхүүргүй индексжүүлсэн массивууд:

    Утга бүхий массивыг эхлүүлэх үед массив дахь индексүүдийг ерөнхийд нь орхиж болно гэдгийг тэмдэглэх нь зүйтэй. Дараа нь бид гэж нэрлэгддэг зүйлийг бий болгодог массив цуглуулга(цуглуулах объект):

    $student = массив ("Жон" , "Смит" , 20 );

    $Оюутан = массив("Жон", "Смит", 20);

    Энэ тохиолдолд орчуулагч өөрөө тэдэнд 0-ээс эхлэн тоон индекс онооно

    Жишээтөрөл хөрвүүлэлт болон элементийн дарж бичих.
    var_dump() процедурын хэрэглээг анхаарна уу

    1 2 3 4 5 6 7 8 9 "a" , "1" => "b" , 2 => "c" , 2 => "d" , ); var_dump ($миний_массив); ?>

    "a", "1"=> ​​"b", 2 => "c", 2 => "d",); var_dump($миний_массив); ?>

    Үр дүн:

    Массив(3) ( => мөр(1) "a" => мөр(1) "б" => мөр(1) "d" )

    Жишээашиглах олон хэмжээст массивболон түүний элементүүдэд хандах зохион байгуулалт

    1 2 3 4 5 6 7 8 9 10 11 12 "1" , 2 => 2 , "олон" => массив ( "1_1" => "1_1" ) ); var_dump ($array_odnom [ "эхний" ] ); var_dump ($array_odnom [ 2 ] ); var_dump ($array_odnom [ "олон" ] [ "1_1" ] ); ?>

    "1", 2 => 2, "олон" => массив("1_1" => "1_1")); var_dump($array_odnom["эхний"]); var_dump($array_odnom); var_dump($array_odnom ["олон"]["1_1"]); ?>

    Үр дүн:

    Мөр(1) "1" int(2) мөр(3) "1_1"

    Жишээ: 3 x 2 хэмжээтэй хоёр хэмжээст массив үүсгэх. Үүнийг эхний эгнээний утгуудаар бөглөнө үү: "1_1", "1_2", "1_3"; хоёр дахь мөрөнд: "2_1", "2_2", "2_3". Массивын эхний элементийг харуулах


    Гүйцэтгэл:
    1 2 3 4 5 6 7 8 9 10 11 12 $array_odnom = массив ( 1 => массив ( 1 => "1_1" , 2 => "1_2" , 3 => "1_3" ) , 2 => массив ( 1 => "2_1" , 2 => "2_2" , 3 => "2_3" ) , ); echo $array_odnom [ 1 ] [ 1 ] ;

    $array_odnom = массив(1 => массив(1 => "1_1", 2 => "1_2", 3 => "1_3"), 2 => массив(1 => "2_1", 2 => "2_2" , 3 => "2_3")); echo $array_onenom;

    php2_1 ажил: 3 x 3 2D массив үүсгэх - Пифагорын үржүүлэх хүснэгтийн зүүн дээд буланд (1, 2, 3; 4, 6, 8...)



    Лабораторийн ажил:
    Танд ямар нэгэн зар байгаа бөгөөд энэ зарыг илгээх шаардлагатай хэд хэдэн өөр хүмүүс байна гэж бодъё. Үүнийг хийхийн тулд та зар сурталчилгааны агуулга бүхий хоосон зайг хийж, дотор нь олон тооны өөрчлөгдөж буй параметрүүд байдаг: хүмүүсийн нэрсийн массив, үйл явдлын массив. Дэлгэц дээр эцсийн мэдэгдлийн нэг хувилбарыг харуул. Ассоциатив массивыг мөн массивыг тодорхойлоход ашиглаж болно.

    Зар сурталчилгааны загварыг ашиглаад өнгийг дагана уу:

    Улаан - массив.
    Браун - тоон хувьсагч.
    Цэнхэр бол тогтмол юм.

    Эрхэм хүндэт (th), Иван Иванович!
    Бид таныг урьж байна Нээлттэй өдөр.
    Үйл явдлын огноо: 5-р сарын 12.
    Хүндэтгэсэн, Василий.


    Код нэмэх:
    1 2 3 4 5 6 7 8 9 10 11 12 13 14 // байнгын мэдэгдэлтодорхойлох("ТЭРЭГДЭХ" , "Хүндэтгэсэн, Вася") ; // хүлээн авагчийн нэрсийн массив$нэр = массив (... ); // үйл явдлын массив$ үйл явдлууд = массив ("op_doors" => "Нээлттэй өдөр", "vistavka" => "үзэсгэлэн" , ... ); $str = "Эрхэм ээ, $names!
    "
    ; $str .= ...; $str .= ...; цуурай ...;

    // тогтмол тодорхойлолтыг тодорхойлох("SIGN","Хүндэтгэсэн, Вася"); // хүлээн авагчийн нэрсийн массив $нэр = массив(...); // үйл явдлын массив $events = array("op_doors" => "нээлттэй өдөрлөг", "vistavka" => "үзэсгэлэн", ...); $str = "Эрхэм $names!
    "; $str .= ...; $str .= ...; цуурай ...;

PHP дээр массив гэж юу болохыг ойлгоцгооё. Массив гэдэг нь зөвхөн нэг нэгж хэлбэрээр үзүүлсэн зарим утгуудын бүлэг юм. Жимсний сагсыг төсөөлөөд үз дээ. Энэ нь банана, жүрж, алим, усан үзэм агуулдаг. РНР-д ийм бүтцийг массив хэлбэрээр илэрхийлж болно. Сагс нь массив өөрөө бөгөөд тодорхой жимс нь түүний элементүүд юм.

Одоо массивтай туршилт хийхдээ төслийн хавтсандаа файл үүсгэцгээе. Үүнийг нэрлэе arrays.php.

Массивыг PHP дээр дөрвөлжин хаалт ашиглан дараах байдлаар зарлана.

Ийм байдлаар бид хоосон массив үүсгэсэн.

Хуучин кодоорТа ийм массив тодорхойлолтын жишээг олж болно:

$fruits = массив();

Одоо энэ оруулга хуучирсан тул та үүнийг ашиглах ёсгүй!

Та мөн зарим утгыг агуулсан массив үүсгэж болно. Үүнийг дараах байдлаар хийдэг.

$fruits = ["алим", "улбар шар", "усан үзэм"];

Та бидэнд аль хэдийн мэдэгдэж байсан var_dump функцийг ашиглан үүссэн массивыг харуулах боломжтой:

Энэ скриптийг хөтөч дээр нээж ажиллуулцгаая: http://myproject.loc/arrays.php
Бид дараахь зүйлийг харах болно.

C:\OpenServer\domains\myproject.loc\www\arrays.php:4: массив (хэмжээ=3) 0 => "алим" мөр (урт=5) 1 => "улбар шар" мөр (урт=6) 2 => "усан үзмийн" мөр (урт = 5)

Дугаарлагдсан массивууд

Массив бол объектын төрөл, тухайлбал массив юм. Size=3 нь массивын хэмжээс (3 элемент агуулсан). 0, 1, 2 нь массив түлхүүрүүд, тэдгээрийг бас нэрлэдэг индексүүд. Эдгээр түлхүүрүүд нь утгуудыг хадгалдаг, манай тохиолдолд эдгээр утгууд нь мөр юм. Бидний харж байгаагаар массивын товчлуурууд нь тэгээс эхлэн дугаарлагдсан бөгөөд дараа нь ердөө нэгээр нэмэгддэг.

Бид эдгээр товчлууруудыг ашиглан массивын утгуудын аль нэгийг авч болно. Үүнийг хийхийн тулд массивын нэрийг зааж өгөөд дараа нь утгыг авахыг хүссэн түлхүүрийг дөрвөлжин хаалтанд бичнэ.

Жишээлбэл, массивын хоосон элементийг (0 түлхүүртэй) авахын тулд бид дараахь зүйлийг хийнэ.

Энэ кодын үр дүн:

2-р индексийн элементийг авцгаая:

Үр дүн:

Хэрэв бид байхгүй индекстэй элементийг авахыг оролдвол, жишээлбэл - 3:

Дараа нь бид ийм түлхүүр бүхий элемент олдсонгүй гэсэн анхааруулгыг хүлээн авах болно.

Массивын элементүүдийг нэмэх, хасах

Массив дээр өөр нэг элемент нэмье, үүний тулд бид дараах бүтцийг ашиглана:

$fruits = "манго";

Үүний дараа var_dump ашиглан массиваа дахин харцгаая:

Үр дүн нь индекс 3 дахь өөр нэг элемент юм:

C:\OpenServer\domains\myproject.loc\www\arrays.php:7: массив (хэмжээ=4) 0 => "алим" мөр (урт=5) 1 => "улбар шар" мөр (урт=6) 2 => "усан үзмийн" мөр (урт=5) 3 => "манго" мөр (урт=5)

Тохируулаагүй бүтцийг массивын элементүүдийг устгахад ашигладаг. 2-р индекс дээрх элементийг устгацгаая:

Энэ кодын үр дүн:

C:\OpenServer\domains\myproject.loc\www\arrays.php:9: массив (хэмжээ=3) 0 => "алим" мөр (урт=5) 1 => "улбар шар" мөр (урт=6) 3 => "манго" мөр (урт = 5)

Бидний харж байгаагаар 2-р индекстэй элемент байхгүй болсон бөгөөд товчлууруудын дарааллын дугаарт "нүх" үүссэн байна. Хэрэв бид одоо шинэ элемент нэмбэл түүний индекс 4-тэй тэнцүү байх болно, гэхдээ энэ нүх хэвээр байх болно. Энэ нь яг ийм байдлаар ажилладаг бөгөөд та үүнийг санаж байх хэрэгтэй.

Тэгээд түлхүүрүүд рүү буцах

Ерөнхийдөө эдгээр түлхүүрүүдийг массив үүсгэх үед ч өөрөө тохируулж болно. Үүн шиг:

Үр дүн:

C:\OpenServer\domains\myproject.loc\www\arrays.php:5: массив (хэмжээ=3) 5 => "алим" мөр (урт=5) 3 => "улбар шар" мөр (урт=6) 9 => "усан үзмийн" мөр (урт = 5)

Бидний харж байгаагаар товчлуурууд одоо 5, 3, 9 байна.
Хэрэв бид одоо массив дээр элемент нэмбэл энэ нь түлхүүрийн хамгийн их тоон утгаас нэгээс их индекстэй байх болно:

Үр дүн:

C:\OpenServer\domains\myproject.loc\www\arrays.php:7: массив (хэмжээ=4) 5 => "алим" мөр (урт=5) 3 => "улбар шар" мөр (урт=6) 9 => "усан үзмийн" мөр (урт=5) 10 => "манго" мөр (урт=5)

Та мөн массив дээр өгөгдсөн түлхүүрээр утгыг нэмж болно, жишээлбэл, бид массив дээр манго нэмж, түүний утгыг индекс 20-д хадгалсан эсэхийг шалгахыг хүсч байна. Энэ нь энгийн:

Үр дүн:

C:\OpenServer\domains\myproject.loc\www\arrays.php:7: массив (хэмжээ=4) 5 => "алим" мөр (урт=5) 3 => "улбар шар" мөр (урт=6) 9 => "усан үзмийн" мөр (урт=5) 20 => "манго" мөр (урт=5)

Хэрэв энэ түлхүүрийн утга массив дотор байгаа бол түүнийг шинээр солих болно. Жишээлбэл, алимыг мангогаар сольж үзье.

Үр дүн:

C:\OpenServer\domains\myproject.loc\www\arrays.php:5: массив (хэмжээ=3) 5 => "алим" мөр (урт=5) 3 => "улбар шар" мөр (урт=6) 9 => "усан үзмийн" мөр (урт=5) C:\OpenServer\domains\myproject.loc\www\arrays.php:9: массив (хэмжээ=3) 5 => "манго" мөр (урт=5) 3 = > "улбар шар" мөр (урт=6) 9 => "усан үзмийн" мөр (урт=5)

Ассоциатив массивууд

Тоон товчлууруудаас гадна та ердийн мөрүүдийг ашиглаж болно. Ийм массивыг ассоциатив гэж нэрлэдэг. Дараах нөхцөл байдлыг төсөөлөөд үз дээ: ямар нэгэн нийтлэл байна, гарчиг, текст, зохиогчтой. Үүнийг массив хэлбэрээр хялбархан илэрхийлж болно. Энийг хийцгээе:

"Өгүүллийн гарчиг", "текст" => "Өгүүллийн текст"]; $article["author"] = "Зохиогчийн нэр"; var_dump($ нийтлэл);

Энэ кодын үр дүн:

C:\OpenServer\domains\myproject.loc\www\arrays.php:6: массив (хэмжээ=3) "гарчиг" => "Өгүүллийн гарчиг" мөр (урт=29) "текст" => "Өгүүллийн текст" мөр (урт=23) "зохиогч" => "Зохиогчийн нэр" мөр (урт=19)

Гайхалтай, одоо бид үүнийг HTML тэмдэглэгээнд ашиглаж болно:

"Өгүүллийн гарчиг", "текст" => "Өгүүллийн текст", "зохиогч" => "Өгүүллийн зохиогч" ]; ?> <?= $article["title"] ?>



Үр дүн:

Олон хэмжээст массив

Хичээлийн эхэнд би зарим утгыг массивын товчлууруудаар хадгалдаг бөгөөд бидний тохиолдолд эдгээр нь мөрүүд гэж хэлснийг санаарай. Тиймээс массив элемент нь ерөнхийдөө юу ч байж болно. Бүр массив өөрөө. =)

"Өгүүллийн гарчиг", "текст" => "Өгүүллийн текст", "зохиогч" => [ "эхний_нэр" => "Иван", "овгийн_нэр" => "Иванов" ] ]; var_dump($ нийтлэл);

Үр дүн:

C:\OpenServer\domains\myproject.loc\www\arrays.php:10: массив (хэмжээ=3) "гарчиг" => "Өгүүллийн гарчиг" мөр (урт=29) "текст" => "Өгүүллийн текст" мөр (урт=23) "зохиогч" => массив (хэмжээ=2) "анхны_нэр" => "Иван" мөр (урт=8) "овгийн_нэр" => "Иванов" мөр (урт=12)

Энэ нь маш энгийн, нийтлэл нь массив бөгөөд энэ нь мөн зохиогчийн түлхүүрээр массивтай байдаг.
Зохиогчийн нэрийг авахын тулд дараах кодыг ашиглана уу.

"Өгүүллийн гарчиг", "текст" => "Өгүүллийн текст", "зохиогч" => [ "эхний_нэр" => "Иван", "овгийн_нэр" => "Иванов" ] ]; echo $article["author"]["first_name"];

Эхлээд $article массив дээр бид зохиогчийн түлхүүрээр утгыг авсан бөгөөд энэ утга нь массив болж хувирсан. Тэгээд энэ массиваас бид эхний_нэр түлхүүрээр утгыг авсан. Мөн энэ кодын үр дүн нь мэдээжийн хэрэг:

Иван

Одоо эдгээр утгыг аль хэдийн ашигласан загварт ашиглацгаая:

"Өгүүллийн гарчиг", "текст" => "Өгүүллийн текст", "зохиогч" => [ "эхний_нэр" => "Иван", "овгийн_нэр" => "Иванов" ] ]; ?> <?= $article["title"] ?>



Үр дүн:

Мэдээжийн хэрэг та энэ утгын дотор массив үүсгэж, залхтал нь өөр нэг массив үүсгэж болно.

Дараагийн хичээлээр бид массивтай ажиллах илүү төвөгтэй, сонирхолтой жишээг үзэх болно.

Энэхүү богино өгүүллээр бид массивтай ажиллах хэд хэдэн аргыг авч үзэх болно. Энэ бол хамгийн чухал өгөгдлийн төрлүүдийн нэг бөгөөд орчин үеийн програмчлалын хэлийг тэдгүйгээр төсөөлөхөд хэцүү гэдгийг тэмдэглэх нь зүйтэй. Массив гэж юу вэ?
Массив нь бүтэцлэгдсэн өгөгдлийн багц юм.
Үүнийг тэдгээрийн бүтцээс тодорхойлж болно энгийн массивэсвэл ассоциатив. Аль нь илүү дээр вэ гэдгийг тодорхой хэлэх боломжгүй, учир нь. Нөхцөл байдлын дагуу нэг юмуу өөр төрлийг ашиглах ёстой.

PHP дээр энгийн массивыг хэрхэн үүсгэх

Энгийн массив дараах байдалтай байна.

Би нэн даруй өгөгдөлд анхаарлаа хандуулахыг хүсч байна (тиймээ, би үүнийг санаатайгаар бичсэн 🙂). Мөр өгөгдөл, эсвэл мөрүргэлж хашилтанд бичээрэй, юу ч байсан, дан болон давхар хоёулаа явах болно (гол нь мөр нь ижил ишлэлээр эхэлж, хаагдах явдал юм). 29 дугаар нь төрөлтэй бүхэл тоо, эсвэл тоо - эдгээр өгөгдлийн төрлүүдэд ишлэл хэрэггүй.
$my_array массив хэрхэн харагдахыг шалгацгаая:

"; print_r($my_array); echo ""; /* массив авах ( => Сандал => Үүлэн => 29) */ ?>

энгийн массив ийм харагдаж байна.
0,1,2 Эдгээр нь бидний массивын индексүүд юм. Индексүүдийн тусламжтайгаар бид массиваас тодорхой зүйлийг гаргаж чадна.

Түүнчлэн, хэрэв бид бичвэл ижил массив үүсгэж болно:

Гурав дахь арга бий:

"Сандал", 1 => "Үүл", 2 => 29);?>

Мөн дөрөв дэх нь 🙂

индексүүд 0-ээс эхлэн бөглөнө.

PHP нь ассоциатив массив гэж юу вэ

Энгийн массив гэж юу болохыг бид аль хэдийн олж мэдсэн. Ассоциатив массив нь үүнээс өөр юм индексүүдийн оронд товчлуурууд. Өөрөөр хэлбэл, бид 0,1 эсвэл 2-ыг утгад хандахаа болино. Энгийн массиваа ассоциатив байдлаар бичье:

Сандал => Үүл => 29) */ ?>

Мөн бид дуудлагын хувьд ашиглах болно

Тооны оронд ( индекс) бид утга учиртай нэр (холбоо) тавьсан бөгөөд бидний индексийг одоо дуудаж болно массив түлхүүр(зүйл, тэнгэр, тоо). Ассоциатив массивын хамгийн алдартай, магадгүй хамгийн тохиромжтой тэмдэглэгээ нь:

"Сандал", "тэнгэр" => "Үүл", "тоо" => 29); ?>

олон хэмжээст массив

Энэ аварга хүний ​​тухай хэдхэн үг хэлье 🙂

массив ("өнгө" => "улаан", "жил" => "2010", "марк" => "M5"), "audi" => массив ("өнгө" => "хар", "жил" = > "2011", "марк" => "TT")); хэвлэх_r($авто); // массив гаралт echo $auto["bmw"]["mark"]; // M5 ?>

Таны ойлгож байгаагаар өмнө нь мөр эсвэл тоо байсан утгын оронд массив ( гэх мэт өгөгдлийн төрөл байдаг. Би танд массив дотор массив хийх болно, ингэснээр та массивыг дуудах үед өөр массив байх болно. :)).