Эффективная работа с массивами в ПХП

Silent

Новичок
> У меня складывается мнение, что вы очень хорошо знаете английский язык. Вы уже второй раз цитируете не в свою пользу

Это форум или место для стеба? Если я не прав, то не соизволите ли Вы указать, в чем именно я не прав (желательно подтвердить это строками из документации). И про второй случай мне тоже очень интересно.

А также очень интересно, в чем выражается сохранение порядка массива в случае применения функции array_unique, на примере вот такого кода:
PHP:
$z = array("1","2","3","2","3","2","1","3","2","2","3","1","3","1","1","2");
$t = array_unique($z);
print_r($t);
 

ONK

Пассивист PHPСluba
ONK
почуствуйте разницу

for(i;i<function();i++)

и

for(i,x=function(); i<x; i++)
Разница есть, и она очень большая. Виноват, невнимательно читал ранее приведённый код.
 

.des.

Поставил пиво кому надо ;-)
sapenov действительно array_unique не сохраняет ничто, что можно было бы назвать порядком ключей.
а вот в приведенном Silentom или моем варианте легко можно запоминать ключи для последнего или для первого (если изначально сделать array_reverse) вхождений повторяющихся элементов.
 

sapenov

Guest
2 Silent

согласно документации

array_unique
(PHP 4 )

array_unique -- Removes duplicate values from an array
Description

array array_unique (array array)


array_unique() takes input array and returns a new array without duplicate values.

Note that keys are preserved.

Example 1. array_unique() example

Код:
$input = array ("a" => "green", "red", "b" => "green", "blue", "red");
$result = array_unique ($input);
print_r($result);
// this will output :
//Array
//(
//    [a] => green
//    [0] => red
//    [1] => blue
//)

Example 2. array_unique() and types

Код:
$input = array (4,"4","3",4,3,"3");
$result = array_unique ($input);
var_dump($result);

/* output:
array(2) {
   [0]=>
   int(4)
   [1]=>
   string(1) "3"
}
*/

а это из пользовательских замечаний:

It seems that array_unique creates an exact copy of the original array and then elimitates duplicate values. It does NOT change the "internal references" of the array. For example:

Код:
<?php 
  $test_alfa = array(); 
   $test_alfa[0] = "aa"; 
  $test_alfa[1] = "aa"; 
   $test_alfa[2] = "aa"; 
   $test_alfa[3] = "bb"; 
  $test_alfa[4] = "aa"; 
   $test_alfa[5] = "bb"; 
   $test_alfa[6] = "cc"; 
  $test_alfa[7] = "bb"; 
  
   $test_beta= array_unique($test_alfa); 
   $numValues = count($test_beta); 
  for ($i = 0 ; $i <= 7 ; $i++) 
      echo("test_beta[$i] = $test_beta[$i] 
"); 
   echo ("Number of elements in test_beta = $numValues "); 
?> 
will give you the following output: 

test_beta[0] = 
test_beta[1] = aa 
test_beta[2] = 
test_beta[3] = 
test_beta[4] = 
test_beta[5] = bb 
test_beta[6] = cc 
test_beta[7] = 
Number of elements in test_beta = 3
 
Сверху