Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Jaka to funkcja?
Forum PHP.pl > Forum > Przedszkole
MMySlime
Witam,
czy jest funkcja która działałaby podobnie na zasadzie array_replace, która nie dodaje wartości?

Przykład:

Array_Replace:
  1. array_replace(Array(true), Array(false,true);


Output:
  1. Array(false,true);


Chodzi mi żeby output był Array(false);

Dzięki za pomoc smile.gif

@Ref
skowron-line
Nie rozumiem o co chodzi.
Może jakiś przykład jakie dane wejściowe i jakie dane wyjściowe.
Greg0
Zaglądałeś do manuala jak ta funkcja działa chociaż? array_replace
Jeśli chcesz mieć jednoelementową tablicę na wyjściu to nie wstawiaj tam dwuelementowej do podstawienia na wejściu
redeemer
Może chodzi o array_diff?
  1. $a = array(true);
  2. $b = array(false,true);
  3. var_dump( array_merge( array_diff($a, $b), array_diff($b, $a) ) );
MMySlime
Chodzi mi dokładnie o to aby zamienić wartości z tymi samymi kluczami i aby nie było w pierwszej tablicy niepotrzebnych kluczy z drugiej.

Mamy dwie tablice: Array(1 => 1, 2 => 2, 3 => 3); Array(1 => 5, 2 => 6, 3 => 7, 4 => 8, 5 => 9);

I chcę otrzymać na wyjściu pierwszą tablicą z zamienionymi parametrami ale bez dodatkowych: Array(1 => 5, 2=> 6, 3=> 7);

redeemer
array_replace + array_intersect_key
  1. $a = Array(1 => 1, 2 => 2, 3 => 3);
  2. $b = Array(1 => 5, 2 => 6, 3 => 7, 4 => 8, 5 => 9);
  3.  
  4. var_dump(array_intersect_key(array_replace($a, $b),$a));

Nie wiem czy zwykła pętla nie będzie szybsza:
  1. foreach($a as $key => $value) {
  2. if (array_key_exists($key, $b)) $a[$key] = $b[$key]; // wynik w tablicy $a
  3. //$c[$key] = (array_key_exists($key, $b) ? $b[$key] : $a[$key]); // z dodatkową tablicą $c na wynik
  4. }
MMySlime
Dzięki za pomoc wink.gif
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.