😎 » PHP - FAQ » PHP в прикладах » Основи роботи з масивами
151 0  

Основи роботи з масивами

Основні функції та прийоми роботи з масивами в PHP8



winked Всі операції з масивами - Офіц. Сайт.

Операції з масивами:

//Якщо $file - це масив:
//---
//Видаляємо 1 та 0 індекс.
unset($file[0],$file[1]);

//переіндексовуємо індекси що б починались з 0
 $file = array_values($file);

//видаляємо індекси без  значення
$file = array_diff($file, array('', NULL, false));

//міняємо місцями ключі та їх значення
$file = array_flip($file);


Як показати(подивитись) значення масиву?:

<?php
$cities = array("London", "Paris", "New York");

// Виведемо на екран масив двома способами
Print_r($cities);
echo "<hr>";
var_dump($cities);
?>
/* результат:
* Array ( [0] => London [1] => Paris [2] => New York )
* : array (size=3)
*  0 => string 'London' (length=6)
*  1 => string 'Paris' (length=5)
*  2 => string 'New York' (length=8)
*/

Як перевірити, чи існує ключ у масиві в PHP

Ви можете використовувати PHP-функцію array_key_exists(), щоб перевірити, чи існує цей ключ або індекс у масиві чи ні. Ця функція повертає TRUE у разі успіху або FALSE у разі невдачі.

$cities = array("France"=>"Paris", "India"=>"Mumbai", "UK"=>"London", "USA"=>"New York");
if(array_key_exists("France", $cities)){
    echo "Ключ 'France' існує в масиві cities ";
}

Як перетворити масив в строку?

$array = array("red", "green", "blue");

// Перетворює масив в строку
$str = implode(", ", $array);
echo $str; 
/* результат:
*  red, green, blue
*/

Як перевірити чи є значення в масиві?

Ви можете використовувати PHP-функцію in_array(), щоб перевірити, чи існує значення в масиві чи ні.

<?php
$zoo = array("Lion", "Tiger", "Zebra", "Rhino", "Bear");
if(in_array("Elephant", $zoo)){
    echo "Elephant НЕмає у масиві";
}
echo "<br>";
if(in_array("Tiger", $zoo)){
    echo "Tiger є в масиві";
}
?>
/* результат:
* Tiger є в масиві
*/

Як видалити перший та останній елемент з масиву в PHP?

Ви можете використовувати функцію PHP array_shift() для видалення першого елемента або значення з масиву. Функція array_shift() повертає також виддалене значення масиву. Однак, якщо масив порожній (або змінна не є масивом), значення, що повертається буде NULL.

<?php
$hobbies = array("Acting", "Drawing", "Music", "Films", "Photography");

// Видалення першого елемента масиву
$removed = array_shift($hobbies);
print_r($hobbies);
echo "<br>";
var_dump($removed);
?>
/* результат:
* Array ( [0] => Drawing [1] => Music [2] => Films [3] => Photography
*  :string 'Acting' (length=6)
*/

Відповідно можна і останній елемент видалити за допомогою функції "array_pop()":

// Видалення останього елемента масива
$removed = array_pop($sports);
print_r($sports);
echo "<br>";
var_dump($removed);

/* результат
* Array ( [0] => Baseball [1] => Cricket [2] => Football )
* :string 'Shooting' (length=8)
*/

Як додати на початок та кінець масиву нові значення:

<?php
$skills = array("HTML5", "CSS3", "jаvascript");

// Добавляемо в кінець масиву
array_push($skills, "jQuery", "PHP");
print_r($skills);

// ----- Добавляемо на початок масиву
array_unshift($skills, "jQuery", "PHP");
print_r($skills);
?>
/* результат:
Array ( [0] => HTML5 [1] => CSS3 [2] => jаvascript [3] => jQuery [4] => PHP
-----
Array ( [0] => jQuery [1] => PHP [2] => HTML5 [3] => CSS3 [4] => jаvascript
*/

Як змінити порядок масиву в PHP

Ви можете використовувати PHP-функцію array_reverse(), щоб змінити порядок елементів масиву.

<?php
$colors = array("Red", "Green", "Blue");

// Виведемо перевернутий масив
print_r(array_reverse($colors));
?>
/* результат:
* Array ( [0] => Blue [1] => Green [2] => Red 
*/

Як заповнити список, значеннями масиву в PHP?

<form>
    <select>
        <option selected="selected">Choose one</option>
        <?php
        // Приклад масиву
        $products = array("Mobile", "Laptop", "Tablet", "Camera");

        // Проходимо форіч по масиву
        foreach($products as $item){
            echo '<option value="strtolower($item)">' . $item . '</option>';
        }
        ?>
    </select>
    <input type="submit" value="Submit">
</form>

Результат:

Як видалити елемент з масиву?

Якщо ви бажаєте видалити елемент із масиву, ви можете просто використовувати функцію unset().

Функція array_splice() приймає три параметри: масив, зміщення (де почати) і довжину (кількість елементів, що видаляються).

$arr1 = array("a" => "Apple", "b" => "Ball", "c" => "Cat");
unset($arr1["b"]);
print_r($arr1);
// Результат: array("a" => "Apple", "c" => "Cat")

$arr2 = array(1, 2, 3);
unset($arr2[1]);
print_r($arr2);
// Результат: array(0 => 1, 2 => 3)

$arr3 = array(1, 2, 3);
array_splice($arr3, 1, 1);
print_r($arr3);
// Результат: array(0 => 1, 1 => 3)

Як в PHP видалити з масиву значення, що повторються?

Ви можете використовувати PHP-функцію array_unique() для видалення елементів, що повторюються, або значень з масиву. Якщо масив містить строкові ключі, ця функція збереже перший знайдений ключ для кожного значення та проігнорує всі наступні ключі.

<?php
$array = array("a" => "moon", "star", "b" => "moon", "star", "sky");

// Видалення елементів що повторюються
$result = array_unique($array);
print_r($result);
?>
/* результат:
* Array ( [a] => moon [0] => star [2] => sky
*/

PHP функція array_filter() для видалення або фільтрації порожніх значень з масиву. Ця функція зазвичай фільтрує значення масиву за допомогою функції зворотного дзвінка.

Однак, якщо функція зворотного виклику не вказана, всі порожні записи масиву будуть видалені, такі як "" (порожній рядок), 0 (0 як ціле число), 0.0 (0 як число з плаваючою комою), "0" (0 як рядок ), NULL, FALSE та array() (порожній масив). Спробуймо на прикладі зрозуміти, як це працює:

$array = array("apple", "", 0, 2, null, -5, "0", "orange", 10, false);

// Фільтрація масива
$result = array_filter($array);
var_dump($result);

// callback-функція щоб зберегти 0
function myFilter($var){
    return ($var !== NULL && $var !== FALSE && $var !== "");
}

// Фільтрація масива по фільтру з 0
$result = array_filter($array, "myFilter");
var_dump($result);

/* результат:
: array (size=5)
  0 => string 'apple' (length=5)
  3 => int 2
  5 => int -5
  7 => string 'orange' (length=6)
  8 => int 10

:array (size=7)
  0 => string 'apple' (length=5)
  2 => int 0
  3 => int 2
  5 => int -5
  6 => string '0' (length=1)
  7 => string 'orange' (length=6)
  8 => int 10
*/

Як перебрати багатовимірний масив у PHP?

Ви можете просто використовувати цикл foreach у поєднанні з циклом for для доступу та вилучення всіх ключів, елементів або значень всередині багатовимірного масиву в PHP.

<?php
// Багатомірний масив
$superheroes = array(
    "spider-man" => array(
        "name" => "Peter Parker",
        "email" => "peterparker@mail.com",
    ),
    "super-man" => array(
        "name" => "Clark Kent",
        "email" => "clarkkent@mail.com",
    ),
    "iron-man" => array(
        "name" => "Harry Potter",
        "email" => "harrypotter@mail.com",
    )
);

// Виводимо усі ключі та значення
$keys = array_keys($superheroes);
for($i = 0; $i < count($superheroes); $i++) {
    echo $keys[$i] . "{<br>";
    foreach($superheroes[$keys[$i]] as $key => $value) {
        echo $key . " : " . $value . "<br>";
    }
    echo "}<br>";
}
?>
/* результат:
spider-man{
name : Peter Parker
email : peterparker@mail.com
}
super-man{
name : Clark Kent
email : clarkkent@mail.com
}
iron-man{
name : Harry Potter
email : harrypotter@mail.com
}
*/

Як отримати одне конкретне значення з масиву в PHP?

Якщо ви хочете отримати доступ до окремого значення з індексованого, асоціативного або багатовимірного масиву, ви можете зробити це за допомогою індексу чи ключа масиву.

// А. Індексований масив
$sports = array("Baseball", "Cricket", "Football", "Shooting");

// Б. Асоціативний масив
$cities = array("France"=>"Paris", "India"=>"Mumbai", "UK"=>"London", "USA"=>"New York");

// В. Багатомірний масив
$superheroes = array(
    array(
        "name" => "Peter Parker",
        "character" => "Spider-Man",
    ),
    array(
        "name" => "Tony Stark",
        "character" => "Iron-Man",
    ),
    array(
        "name" => "Clark Kent",
        "character" => "Super-Man",
    )
);

echo $sports[0]; // Результат з масиву А.: Baseball
echo "<br>";
echo $cities["France"]; // Результат з масиву Б.: Paris
echo "<br>";
echo $superheroes[0]["name"]; // Результат з масиву В.: Peter Parker

Як порівняти два значення масиву в PHP

Функція array_diff() повертає значення першому масиві, яких немає у жодному з інших масивів. Приклад:

<?php
$array1 = array("a" => "sky", "star", "moon", "cloud", "moon");
$array2 = array("b" => "sky", "sun", "moon");

// Порівнюємо
$result = array_diff($array1, $array2);
print_r($result);
?>
/* Результат:
* Array ( [0] => star [2] => cloud 
*/

Як об'єднати два або більше масивів в один в PHP?

Ви можете використовувати PHP-функцію array_merge() для об'єднання елементів або значень двох або більше масивів у єдиний масив. Злиття відбувається таким чином, що значення одного масиву додаються до кінця попереднього масиву. Давайте подивимося на приклад:

<?php
$array1 = array(1, "fruit" => "banana", 2, "monkey", 3);
$array2 = array("a", "b", "fruit" => "apple", "city" => "paris", 4, "c");

// Обєднання масивів
$result = array_merge($array1, $array2);
print_r($result);
?>
/* результат:
Array ( [0] => 1 [fruit] => apple [1] => 2 [2] => monkey [3] => 3 [4] => a [5] => b [city] => paris [6] => 4 [7] => c
*/

what Якщо вхідні масиви містять однакові рядкові ключі, то пізніше значення для цього ключа перезаписуватиме попереднє під час процесу злиття

Як отримати всі ключі масиву та їх значення:

Функція array_keys(), щоб отримати всі ключі з асоціативного масиву.

<?php
$cities = array("France"=>"Paris", "India"=>"Mumbai", "UK"=>"London", "USA"=>"New York");
// Отримуємо ТІЛЬКИ ключі
print_r(array_keys($cities));

// ------- Отримуємо КЛЮЧІ та ЗНАЧЕННЯ
foreach($cities as $key => $value){
    echo $key . " : " . $value . "<br>";
}
?>
/* результат:
Array ( [0] => France [1] => India [2] => UK [3] => USA
-------
France : Paris
India : Mumbai
UK : London
USA : New York
*/

Сортування числового масиву та строк:

Функції PHP sort() і rsort() можна використовувати для сортування числових чи індексованих масивів.

$text = array("Sky", "Cloud", "Birds", "Rainbow", "Moon");
$numbers = array(1, 2, 3.5, 5, 8, 10);

// Сортування  строк
sort($text);
print_r($text);
echo "<br>";
//результат: Array ( [0] => Birds [1] => Cloud [2] => Moon [3] => Rainbow [4] => Sky

// Сортуваня чисел
sort($numbers);
print_r($numbers);
// результат: Array ( [0] => 1 [1] => 2 [2] => 3.5 [3] => 5 [4] => 8 [5] => 10 )

Як відсортувати асоціативний масив за ключем або значенням у PHP8

Функції PHP ksort() та krsort() можна використовувати для сортування масиву ЗА КЛЮЧЕМ.

winked Аналогічно функція asort() та arsort() робить сортування массиву ПО ЗНАЧЕННЮ.

<?php
$fruits = array("b"=>"banana", "a"=>"apple", "d"=>"dog", "c"=>"cat");
// Сортування наростаюче
ksort($fruits);
print_r($fruits);
// ---- Сортування спадаюче
krsort($fruits);
print_r($fruits);
?>
/* результат:
Array ( [a] => apple [b] => banana [c] => cat [d] => dog
----
Array ( [d] => dog [c] => cat [b] => banana [a] => apple
*/

Як створити рандомний масив та перемішати його?

// Створюємо масив за доп. функ. range(початкове значення, кінцеве, крок) * 3-й парамет крок - можна не вказувати
$numbers = range(1, 50, 5);
// результат: Array ( [0] => 1 [1] => 6 [2] => 11 [3] => 16 [4] => 21 [5] => 26 [6] => 31 [7] => 36 [8] => 41 [9] => 46

// Перемішуємо елементи масиву
shuffle($numbers);
foreach ($numbers as $value){
    print_r ($value . ",");
}
// результат: 16,46,26,41,11,36,1,21,31,6,

Вивести тільки перших 10 значень масиву (Зробити зріз масиву).

$input = array("a", "b", "c", "d", "e");

array_slice($input, 2);      // вернет "c", "d" и "e"
array_slice($input, -2, 1);  // верне "d"
array_slice($input, 0, 3);   // верне "a", "b" и "c"

Залишити свій коментар:

Досвід у веброзробці:

2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2009
2023