Verification: a143cc29221c9be0

Php array find by index

Array.forEach()

Метод forEach() вызывает функцию (функцию обратного вызова) один раз для каждого элемента массива.

Пример

var txt = "";
var numbers = [45, 4, 9, 16, 25];
numbers.forEach(myFunction);

function myFunction(value, index, array) {
  txt = txt + value + "
";
}

Попробуйте сами »

Обратите внимание, что функция принимает 3 аргумента:

  • Значение предмета
  • Индекс позиции
  • Сам массив

В приведенном выше примере используется только параметр значения. Пример можно переписать так:

Пример

var txt = "";
var numbers = [45, 4, 9, 16, 25];
numbers.forEach(myFunction);

function myFunction(value) {
  txt = txt + value + "
";
}

Попробуйте сами »

Array.forEach() поддерживается во всех браузерах, кроме Internet Explorer 8 или более ранней версии:


Array.map()

Метод map() создает новый массив, выполняя функцию для каждого элемента массива.

Метод map() не выполняет функцию для элементов массива без значений.

Метод map() не изменяет исходный массив.

В этом примере каждое значение массива умножается на 2:

Пример

var numbers1 = [45, 4, 9, 16, 25];
var numbers2 = numbers1.map(myFunction);

function myFunction(value, index, array) {
  return value * 2;
}

Попробуйте сами »

Обратите внимание, что функция принимает 3 аргумента:

  • Значение предмета
  • Индекс позиции
  • Сам массив

Когда функция обратного вызова использует только параметр значения, параметры индекса и массива можно не указывать:

Пример

var numbers1 = [45, 4, 9, 16, 25];
var numbers2 = numbers1.map(myFunction);

function myFunction(value) {
  return value * 2;
}

Попробуйте сами »

Array.map() поддерживается во всех браузерах, кроме Internet Explorer 8 или более ранней версии.



Array.filter()

Метод filter() создает новый массив с элементами массива, проходит тест.

В этом примере создается новый массив из элементов со значением больше 18:

Пример

var numbers = [45, 4, 9, 16, 25];
var over18 = numbers.filter(myFunction);

function myFunction(value, index, array) {
  return value > 18;
}

Попробуйте сами »

Обратите внимание, что функция принимает 3 аргумента:

  • Значение предмета
  • Индекс позиции
  • Сам массив

В приведенном выше примере функция обратного вызова не использует параметры индекса и массива, поэтому их можно не указывать:

Пример

var numbers = [45, 4, 9, 16, 25];
var over18 = numbers.filter(myFunction);

function myFunction(value) {
  return value > 18;
}

Попробуйте сами »

Array.filter() поддерживается во всех браузерах, кроме Internet Explorer 8 или более ранней версии.


Array.reduce()

Метод reduce() запускает функцию для каждого элемента массива, чтобы произвести (уменьшить его до) одно значение.

Метод reduce() работает слева направо в массиве. См. Также reduceRight().

Метод reduce() не уменьшает исходный массив.

В этом примере выполняется поиск суммы всех чисел в массиве:

Пример

var numbers1 = [45, 4, 9, 16, 25];
var sum = numbers1.reduce(myFunction);

function myFunction(total, value, index, array) {
  return total + value;
}

Попробуйте сами »

Обратите внимание, что функция принимает 4 аргумента:

  • Итого (начальное значение / ранее возвращенное значение)
  • Значение предмета
  • Индекс позиции
  • Сам массив

В приведенном выше примере не используются параметры индекса и массива. Его можно переписать так:

Пример

var numbers1 = [45, 4, 9, 16, 25];
var sum = numbers1.reduce(myFunction);

function myFunction(total, value) {
  return total + value;
}

Попробуйте сами »

Метод reduce() может принимать начальное значение:

Пример

var numbers1 = [45, 4, 9, 16, 25];
var sum = numbers1.reduce(myFunction, 100);

function myFunction(total, value) {
  return total + value;
}

Попробуйте сами »

Array.reduce() поддерживается во всех браузерах, кроме Internet Explorer 8 или более ранней версии..


Array.reduceRight()

Метод reduceRight() запускает функцию для каждого элемента массива, чтобы произвести (уменьшить его до) одно значение.

В reduceRight() работает справа налево в массиве. См. Также. reduce().

Метод reduceRight() не уменьшает исходный массив.

В этом примере выполняется поиск суммы всех чисел в массиве:

Пример

var numbers1 = [45, 4, 9, 16, 25];
var sum = numbers1.reduceRight(myFunction);

function myFunction(total, value, index, array) {
  return total + value;
}

Попробуйте сами »

Обратите внимание, что функция принимает 4 аргумента:

  • Итого (начальное значение / ранее возвращенное значение)
  • Значение предмета
  • Индекс позиции
  • Сам массив

В приведенном выше примере не используются параметры индекса и массива. Его можно переписать так:

Пример

var numbers1 = [45, 4, 9, 16, 25];
var sum = numbers1.reduceRight(myFunction);

function myFunction(total, value) {
  return total + value;
}

Попробуйте сами »

Array.reduceRight() поддерживается во всех браузерах, кроме Internet Explorer 8 или более ранней версии.


Array.every()

Метод every() проверяет, если все значения массива проходят тест.

В этом примере проверяется, все ли значения массива больше 18:

Пример

var numbers = [45, 4, 9, 16, 25];
var allOver18 = numbers.every(myFunction);

function myFunction(value, index, array) {
  return value > 18;
}

Попробуйте сами »

Обратите внимание, что функция принимает 3 аргумента:

  • Значение предмета
  • Индекс позиции
  • Сам массив

Когда функция обратного вызова использует только первый параметр (значение), остальные параметры можно не указывать:

Пример

var numbers = [45, 4, 9, 16, 25];
var allOver18 = numbers.every(myFunction);

function myFunction(value) {
  return value > 18;
}

Попробуйте сами »

Array.every() поддерживается во всех браузерах, кроме Internet Explorer 8 или более ранней версии.


Array.some()

Метод some() проверяет, если некоторые значения массива проходят тест.

В этом примере проверяется, не превышают ли некоторые значения массива 18:

Пример

var numbers = [45, 4, 9, 16, 25];
var someOver18 = numbers.some(myFunction);

function myFunction(value, index, array) {
  return value > 18;
}

Попробуйте сами »

Обратите внимание, что функция принимает 3 аргумента:

  • Значение предмета
  • Индекс позиции
  • Сам массив

Array.some() поддерживается во всех браузерах, кроме Internet Explorer 8 или более ранней версии.


Array.indexOf()

Метод indexOf() ищет массив для значения элемента и возвращает его позицию.

Примечание: первый элемент имеет позицию 0, второй элемент - позицию 1 и так далее.

Пример

Найдите в массиве элемент "Apple":

var fruits = ["Apple", "Orange", "Apple", "Mango"];
var a = fruits.indexOf("Apple");

Попробуйте сами »

Array.indexOf() поддерживается во всех браузерах, кроме Internet Explorer 8 или более ранней версии.

Синтаксис

array.indexOf(item, start)

item Необходимые. Элемент для поиска.
start Необязательный. С чего начать поиск. Отрицательные значения начнутся в данной позиции, считая от конца, и поиск до конца.

Array.indexOf() возвращает -1, если элемент не найден.

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


Array.lastIndexOf()

Array.lastIndexOf() то же самое, что и Array.indexOf(), но возвращает позицию последнего вхождения указанного элемента.

Пример

Найдите в массиве элемент "Apple":

var fruits = ["Apple", "Orange", "Apple", "Mango"];
var a = fruits.lastIndexOf("Apple");

Попробуйте сами »

Array.lastIndexOf() поддерживается во всех браузерах, кроме Internet Explorer 8 или более ранней версии.

Синтаксис

array.lastIndexOf(item, start)

item Необходимые. Элемент для поиска
start Необязательный. С чего начать поиск. Отрицательные значения будут начинаться с данной позиции, считая от конца, и поиск до начала

Array.find()

Метод find() возвращает значение первого элемента массива , который проходит тестовую функцию.

В этом примере выполняется поиск (возвращается значение) первого элемента, превышающего 18:

Пример

var numbers = [4, 9, 16, 25, 29];
var first = numbers.find(myFunction);

function myFunction(value, index, array) {
  return value > 18;
}

Попробуйте сами »

Обратите внимание, что функция принимает 3 аргумента:

  • Значение предмета
  • Индекс позиции
  • Сам массив

Array.find() не поддерживается в старых версиях браузеров. Ниже перечислены первые версии браузеров с полной поддержкой.


Определение и использование

Метод find() возвращает значение первого элемента массива, прошедшего тест (предоставляется в виде функции).

Метод find() выполняет функцию один раз для каждого элемента, присутствующего в массиве:

  • Если он находит элемент массива, где функция возвращает значение true, функция find() возвращает значение этого элемента массива (и не проверяет остальные значения)
  • В противном случае он возвращает undefined

Примечание: find() не выполняет функцию для пустых массивов.

Примечание: find() не изменяет исходный массив.


Поддержка браузера

Цыфры в таблице указывают первую версию браузера, которая полностью поддерживает этот метод.

Метод
find() 45.0 12.0 25.0 7.1 32.0

Синтаксис

array.find(function(currentValue, index, arr),thisValue)

Значения параметров

Параметр Описание
function(currentValue, index, arr) Требуемый. Функция, выполняемая для каждого элемента массива.
Аргументы функции:
Аргумент Описание
currentValue Требуемый. Значение текущего элемента
index Необязательный. Индекс массива текущего элемента
arr Необязательный. Объект массива, к которому принадлежит текущий элемент
thisValue Необязательный. Значение, которое должно быть передано функции, которая будет использоваться в качестве ее "этого" значения.
Если этот параметр пуст, то значение "не определено" и будет принят в качестве "этого" значения


Технические детали

Возвращаемое значение: Возвращает значение элемента массива, если какой-либо из элементов массива проходит тест, в противном случае он возвращает undefined
Версия JavaScript: ECMAScript 6

Еще примеры

Пример

Получить значение первого элемента в массиве, который имеет значение выше определенного числа:

Минимальный возраст:


Любого указанного возраста:

function checkAdult(age) {
  return age >= document.getElementById("ageToCheck").value;
}

function myFunction() {
  document.getElementById("demo").innerHTML = ages.find(checkAdult);
}

Попробуйте сами »


Using PHP unset() Function

Use the PHP unset() function to delete an element from an array.

Basically it is used to unset any variable in PHP. This function accept variable as argument and unset it.

Example:

  $arr = array("a" => "apple", "b" => "ball", "c" => "cat");

  unset($arr["b"]);

?>

Output:

array("a" => "Apple", "c" => "Cat")

Another Example:

  $arr = array(1, 2, 3, 4, 5);

  unset($arr[3]);

  print_r($arr)

?>

Output:

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [4] => 5
)

You can see the result array is not indexed. To overcome from this condition, you can use array_splice() PHP function described below.

Using PHP array_splice() Function

You can also use array_splice() function to remove specific array element. This function also can be used to replace array elements by passing array with update values.

This function takes three parameters, an array, offset (where to start), and length (number of elements to be removed).

Here is an example with array_splice() function:

  $arr = array(1, 2, 3, 4, 5);

  array_splice($arr, 2, 2);

  print_r($arr)

?>

Output:

Array
(
    [0] => 1
    [1] => 2
    [2] => 5
)

You can see that the result array is re-indexed.

Цикл each (jQuery.each). Примеры использования

Синтаксис функции each:

// array или object - массив или объект, элементы или свойства которого необходимо перебрать
// callback - функция, которая будет выполнена для каждого элемента массива или свойства объекта
$.each(array или object,callback);

Работу с функцией each разберём на примерах.

Пример №1. В нём выполним переберор всех элементов массива (array).

// массив, состоящий из 3 строк
var arr = ['Автомобиль','Грузовик','Автобус'];

// переберём массив arr
$.each(arr,function(index,value){

  // действия, которые будут выполняться для каждого элемента массива
  // index - это текущий индекс элемента массива (число)
  // value - это значение текущего элемента массива
  
  //выведем индекс и значение массива в консоль
  console.log('Индекс: ' + index + '; Значение: ' + value);

});

/*
Результат (в консоли):
Индекс: 0; Значение: Автомобиль
Индекс: 1; Значение: Грузовик
Индекс: 2; Значение: Автобус
*/

В вышеприведённом коде функция each используется для перебора массива. Функция имеет 2 обязательных параметра. Первый параметр - это сущность (массив или объект), элементы (свойства) которой необходимо перебрать. В данном случае - это массив arr. Второй параметр - это функция обратного вызова, которая будет выполнена для каждого элемента (в данном случае) массива. Она имеет 2 параметра, которые доступны внутри неё посредством соответствующих переменных. Первый параметр - это порядковый номер элемента (отсчёт выполняется с 0). Второй параметр - это значение текущего элемента массива.

Пример №2. В этом примере осуществим перебор всех свойств объекта.

// объект smartphone, имеющий 5 свойств
var smartphone = {
  "name": "LG G5 se",
  "year": "2016",
  "screen-size": "5.3",
  "screen-resolution": "2560 x 1440",
  "os" : "Android 6.0 (Marshmallow)"
};

// переберём объект smartphone
$.each(smartphone, function( key, value ) {

  // действия, которые будут выполняться для каждого свойства объекта
  // key - текущее имя свойства массива
  // value - значение текущего свойства объекта
 
  // выведем имя свойства и его значение в консоль
  console.log( 'Свойство: ' +key + '; Значение: ' + value );

});

/*
Результат (в консоли):
Свойство: name; Значение: LG G5 se
Свойство: year; Значение: 2016
Свойство: screen-size; Значение: 5.3
Свойство: screen-resolution; Значение: 2560 x 1440
Свойство: os; Значение: Android 6.0 (Marshmallow)
*/

Функция each может использоваться для перебора JavaScript объектов. Отличие её использования заключается только в том, что параметры функции обратного вызова имеют другие значения. Первый параметр хранит название свойства объекта, а второй - значение этого свойства.

Пример №3. В нём осуществим перебор более сложной структуры (рассмотрим, как использовать вложенные each).

// объект, состоящий из 2 свойств. Каждое свойство этого объект имеет в качестве значения массив, элементами которого являются тоже объекты
var articles = {
  "Bootstrap": [
    {"id":"1", "title":"Введение"},
    {"id":"2", "title":"Как установить"},
    {"id":"3", "title":"Сетка"}
  ],
  "JavaScript": [
    {"id":"4", "title":"Основы"},
    {"id":"5", "title":"Выборка элементов"}
  ]  
};

$.each(articles,function(key,data) {
  console.log('Раздел: ' + key);
  $.each(data, function(index,value) {
    console.log('Статья: id = ' + value['id'] + '; Название = '+ value['title']);
  });
});

/*
Результат:
Раздел: Bootstrap
Статья: id = 1; Название = Введение
Статья: id = 2; Название = Как установить
Статья: id = 3; Название = Сетка
Раздел: JavaScript
Статья: id = 4; Название = Основы
Статья: id = 5; Название = Выборка элементов
*/

Как прервать each (выйти из цикла)

Прерывание (break) цикла each осуществляется с помощью оператора return, который должен возвращать значение false.

Например, прервём выполнение цикла each после того как найдём в массиве arr число 7:

// массив, состоящий из 5 чисел
var arr = [5, 4, 7, 17, 19];

// число, которое необходимо найти
var find = 7;

// переберём массив arr
$.each(arr, function (index, value) {
  // если необходимое число найдено, то..
  if (value === find) {
    // вывести его в консоль
    console.log('Ура! Число ' + find + ' найдено! Данное число имеет индекс: ' + index);
    // прервать выполнение цикла
    return false;
  } else {
  // иначе вывести в консоль текущее число
  console.log('Текущее число: ' + value);
  }
});

/* Результат (в консоли):
Текущее число: 5
Текущее число: 4
Ура! Число 7 найдено! Данное число имеет индекс: 2
*/

Как перейти к следующей итерации (each continue)

В each прерывание выполнения текущей итерации и переход к следующей осуществляется с помощью оператора return, который должен иметь значение отличное от false.

// массив, состоящий из чисел
var arr = [3, 5, 4, 9, 17, 19, 30, 35, 40];

// массив, который должен содержать все элементы массива arr, кроме чётных чисел
var newarr = [];

// переберём массив arr
$.each(arr, function (index, value) {

  // если элемент чётный, то пропустим его
  if (value % 2 === 0) {
    // прервём выполнение текущей итерации и перейдём к следующей
    return;
  }
  // добавить в массив newarr значение value
  newarr.push(value);

});

console.log('Исходный массив (arr): ' + arr.join());
console.log('Результирующий массив (newarr): ' + newarr.join());

/* Результат (в консоли):
Исходный массив (arr): 3,5,4,9,17,19,30,35,40
Результирующий массив (newarr): 3,5,9,17,19,35
*/