Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Element na początek tablicy
Forum PHP.pl > Forum > PHP
stimoroll
Jak wstawić emelent na początku tablicy - szybko i skutecznie.
Tak bym nie stracił jakiegokolwiek elementu z tablicy i by było szybko.
marcin96
Zaglądając do manuala do działu o tablicach:
http://pl.php.net/manual/pl/ref.array.php

i tam znajdziesz coś takiego:

array_unshift

snitch.gif)
stimoroll
Tylko jakbyś korzystał z tej funkcj to byś wiedział że jak masz tablicę, która posiada indeks 0 , czyli $array[0] to ta funkcja nadpisuje ten element. A tego bym nie chciał.
stimoroll
Tymczasowo zrobiłem coś takiego
[php:1:8792cd3fbe]<?php
function shift_array($array,$val)
{
$tmp=array();
$tmp[]=$val;
foreach($array as $val)
{$tmp[]=$val;}
return $tmp;
}
?>[/php:1:8792cd3fbe]
ale się trochę wlecze - tym bardziej że tablice są pokaźne - może ktoś zna lepsze rozwiązanie?
marcin96
No to dlaczego u mnie taki kod:

[php:1:9b063b53fd]
<pre>
<?php

$array[] = 'jablko';
$array[] = 'gruszka';
array_unshift($array, 'banan');

var_dump($array);


$array2[0] = 'pomarancza';
$array2[1] = 'jablko';
$array2[2] = 'gruszka';
array_unshift($array2, 'kiwi');

var_dump($array2);

?>
</pre>[/php:1:9b063b53fd]

wypluwa cos takiego:
Kod
array(3) {

  [0]=>

  string(5) "banan"

  [1]=>

  string(6) "jablko"

  [2]=>

  string(7) "gruszka"

}



array(4) {

  [0]=>

  string(4) "kiwi"

  [1]=>

  string(10) "pomarancza"

  [2]=>

  string(6) "jablko"

  [3]=>

  string(7) "gruszka"

}


Zawsze mozesz sprobowac:
[php:1:9b063b53fd]
array_reverse($array);
$array[] = $now_element;
array_reverse($array);
[/php:1:9b063b53fd]
stimoroll
Nie wiem dlaczego. U mnie gorzej było ze zdalnym serwerem ,na którym mam konto z php.
Tam ta funkcja nadpisywała pierwszy element.
webmaniak
Witam, znalazłem dość stary temat, no ale idealnie pasuje do mojego problemu.
Mianowicie chciałbym dodać jakiś element na początek tablicy. Nie jest to oczywiście kłopot, gdyż jest funkcja array_unshift, ale... nie umiem dodać wartości z kluczem, przykład:
  1. $stos = array('pomarańczowa'=>"pomarańcza", "banan");
  2. $tab2 = array("klucz" => "wartość");
  3. array_unshift($stos, $tab2);
  4. print_r($stos);

w rezultacie mam:
  1. Array ( [0] => Array ( [klucz] => wartość ) [pomarańczowa] => pomarańcza [1] => banan )

Czyli array w array. To w moim przypadku jest kiepskie rozwiązanie, gdyż później chcę tą zmienną(w tym przykładzie odpowiada jej zmienna $stos) wstawić do formularza w select i pojawia się zero albo znak "/". Niestety, ale w manualu nie widzę rozwiązania tego problemu = nie umiem wykorzystać zawartych tam przykładów do rozwiązania mojego problemu. Pomoże ktoś?
_Borys_
A może tak:

  1. $stos = array('pomarańczowa'=>"pomarańcza", "banan");
  2. $tab2 = array("klucz" => "wartość");
  3. $wynik = $tab2 + $stos;
  4. print_r($wynik);


przy array_merge jest taki przykład.
webmaniak
Może i tak być smile.gif Błędnie szukałem w funkcji która dodawała element na początek tabeli. Dzięki wielkie:)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.