Перебор значений массива в цикле
// Перебор значений ассоциативного массива в цикле, без использования foreach
function NewRandAssociationArray($sizeArray = 5) // функция генерации ассоциативного массива, по умолчанию с 5-тью записями
{
$newArray = array(); // создадим пустой массив
$strForKey = '1234567890qwertyuiopasdfghjklzxcvbnm'; // набор символов для генерации ключа массива
while (count($newArray) < $sizeArray) { // если меньше или равно $sizeArray то выполняем цикл
// заполним массив случайными числами и ключами в цикле
$var = rand(0, 100); // получаем случайное число для ключа от 0 до 100
$key = $strForKey[rand(0, strlen($strForKey))] . $strForKey[rand(0, strlen($strForKey))] . $strForKey[rand(0, strlen($strForKey))]; // создаем ключ из трех случайных символов из $strForKey
if ((in_array($var, $newArray) === false) && (array_key_exists($key, $newArray)) === false) { // если такого значения и ключа еще нет в массиве, то добавим запись в массив
$newArray[$key] = $var;
}
}
return $newArray;
}
$arr = NewRandAssociationArray();
var_dump($arr);
echo 'v1'."\n";
reset($arr); // устанавливает внутренний указатель массива на его первый элемент
for ($i=(count($arr)); $i!=0; --$i) { // цикл по размеру массива
echo key($arr).' => '.current($arr)."\n";
next($arr); // перемещает указатель массива вперед на один элемент
}
echo 'v2'."\n";
reset($arr);
for ($i = (count($arr)); $i != 0; --$i, next($arr)) {
echo key($arr) . ' => ' . current($arr) . "\n";
}
echo 'v3'."\n";
reset($arr);
while (key($arr) != null) { // цикл пока есть полученные значения
echo key($arr) . ' => ' . current($arr) . "\n";
next($arr);
}
echo 'v4 reverse'."\n";
end($arr); // устанавливает внутренний указатель массива на его последний элемент
while (key($arr) != null) {
echo key($arr) . ' => ' . current($arr) . "\n";
prev($arr); // передвигает внутренний указатель массива на одну позицию назад
}
array(5) {
["gad"]=>
int(63)
["01y"]=>
int(39)
["n86"]=>
int(53)
["jya"]=>
int(60)
["w3g"]=>
int(28)
}
v1
gad => 63
01y => 39
n86 => 53
jya => 60
w3g => 28
v2
gad => 63
01y => 39
n86 => 53
jya => 60
w3g => 28
v3
gad => 63
01y => 39
n86 => 53
jya => 60
w3g => 28
v4 reverse
w3g => 28
jya => 60
n86 => 53
01y => 39
gad => 63
php
array
reset
end
current
next
prev
просмотров: 1099