Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> array_merge - jak nadpisać klucz liczbowy?, MAN: "późniejsza wartość nie nadpisze starszej, lecz zostanie dop
starach
post
Post #1





Grupa: Zarejestrowani
Postów: 999
Pomógł: 30
Dołączył: 14.01.2007
Skąd: wiesz ?

Ostrzeżenie: (0%)
-----


Witam.
  1. <?php
  2. $arr1 = array('kolor' => 'zielony', 1 => 'jeden');
  3. $arr2 = array('kolor' => 'rozowy', 1 => 'jedyneczka');
  4. ?>
Funkcja array_merge() zwróci tablicę o strukturze:
Kod
Array
(
    [kolor] => rozowy
    [0] => jeden
    [1] => jedyneczka
)
Jak widać funkcja zamiast nadpisywać zmienia indeksy i zostawia wartości o takich samy kluczach liczbowych.
Co zrobić aby wartości z indeksami liczbowymi zostały nadpisane tak jak to się stało z wartościami o indeksie 'kolor' ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
delfinium
post
Post #2





Grupa: Zarejestrowani
Postów: 90
Pomógł: 6
Dołączył: 30.06.2007
Skąd: Zielona Góra

Ostrzeżenie: (0%)
-----


Może to Ci pomoże:

  1. <?php
  2. array_intersect_key( $arr2, $arr1 );
  3. ?>


tylko zwróć uwagę, że kolejność argumentów jest ważna.


Uzupełnienie:

Dla przypadku, który podałeś to rozwiązanie się sprawdzi ale jeśli będą różne klucze w tablicach to będzie źle.

Spróbowałem inną metodę (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) (kolejność też jest ważna)
  1. <?php
  2. $arr1 = array('kolor' => 'zielony', 1 => 'jeden', 'x' => 12 );
  3. $arr2 = array('kolor' => 'rozowy', 1 => 'szesc', 'y' => 10 );
  4. $arr3 = $arr2 + $arr1;
  5. ?>


i wynik jest taki jak chciałeś

  1. Array ( [kolor] => rozowy [1] => szesc [y] => 10 [x] => 12 )


Ten post edytował delfinium 14.07.2007, 11:25:31
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 3.10.2025 - 13:14