MESSIAH :)
6.10.2015, 09:17:08
W jaki sposób mogę przeszukać tablicę wielowymiarową przy użyciu array_search? Przykład:
Kod
<?php
$a=array("a"=>array("red"),"b"=>array("green"),"c"=>array("blue"));
echo array_search("red",$a);
echo array_search("red", array_column($a, ""));
Ten przykład nie znajduje niczego.
Malukaz
6.10.2015, 09:23:28
function recursive_array_search($needle,$haystack) {
foreach($haystack as $key=>$value) {
$current_key=$key;
if($needle===$value OR
(is_array($value) && recursive_array_search
($needle,$value) !== false)) { return $current_key;
}
}
return false;
}
MESSIAH :)
6.10.2015, 09:28:22
array_search jest po to aby nie pisać petli.
nospor
6.10.2015, 09:36:16
tja..... ale array_search jest zaprojektowane by szukac po jednowymiarowej tablicy a nie zagnieżdzonej....
Chyba, ze uzywasz nowszej wersji php, wowczas ta konstrukcja
array_search("red", array_column($a, ""));
jest prawie poprawna... mowie, prawie, bo masz podac index po jakim szukasz, a "" nie jest indeksem jaki masz. Indeksem jaki masz jest 0
array_search("red", array_column($a, 0));
I to juz dziala na nowym php
MESSIAH :)
6.10.2015, 09:50:43
Nowy czyli? Ja mam 5.6.11 i nie działa. Dałem tak jak napisałeś 0 i nic dalej to samo.
nospor
6.10.2015, 09:51:45
No zobacz, a mi działa

Ja mam 5.5 i ponoc wlasnie od 5.5 to ma juz dzialac
MESSIAH :)
6.10.2015, 09:55:21
Teraz zwraca mi fals lub 0. Czemu ta funkcja nie zwraca całej wartości?
Pyton_000
6.10.2015, 10:06:34
Dostałeś bana na manual? Tak trudno sprawdzić co zwraca funkcja ?
MESSIAH :)
6.10.2015, 10:12:38
No zwraca odpowiedni klucz. Ale mi zawraca 0. To jest poprawne? Ja bym chciał aby mi zwróciło wartość klucza.
nospor
6.10.2015, 10:35:39
Ok, a jaką konkretnie wartosc chciałbyś uzyskać?
MESSIAH :)
6.10.2015, 12:02:08
Chciałbym wyszukać np red w wartości np: "red/blue/green/" i żeby mi zwróciło cały ciąg "red/blue/green".
nospor
6.10.2015, 12:46:41
Przepraszam, chciałbym się upewnić, bo nie wiem czy dobrze zrozumialem:
masz tekst "red/blue/green/" i chcesz sprawdzic, czy w tym tekscie jest red i jesli jest to ma zwrocic caly tekst "red/blue/green/" ?
Jesli tak, to po grzyba ci tablica z pierwszego postu?
MESSIAH :)
6.10.2015, 13:37:14
Bo wszystkie wartości mam zapisane w tablicy np:
Kod
<?php
Array
(
[0] => Array
(
[0] => \red\blue
)
[1] => Array
(
[0] => \cherry
)
[2] => Array
(
[0] => \cherry\yellow
)
[3] => Array
(
[0] => \black\white
)
[4] => Array
(
[0] => \white\red
)
[5] => Array
(
[0] => \black
)
[6] => Array
(
[0] => \red\green
)
)
I teraz chcę wyszukać np: "\red\" i chcę otrzymać całąwartość tego klucza.
Pyton_000
6.10.2015, 13:43:12
Cisną mi się na usta bardzo niecenzuralne słowa pod Twoim adresem ale zachowam je dla siebie...
array_column, foreach, mb_stripos
MESSIAH :)
6.10.2015, 14:30:10
Przepraszam "kolego" iż nie spełniam twoich oczekiwań zapewne urodziłeś się już informatykiem i wieku 3 lat nauczałeś innych kodowania. niestety ja się dopiero uczę i zamiast otrzymywać pomoc to otrzymuje jakieś wywody. Natomiast na moje usta ciśnie się jeden wyraz pod twoim adresem zaczyna się na "c" a kończy na "j". Ty tak na serio? To forum jest od pisanie i pomagania w kodowaniu a nie pisanie swoich ubogich myśli. Jeśli napisałeś już rebus w stylu:
array_column, foreach, mb_stripos to może rozwiń sentencje aby inni mogli zapoznać się z twoim tworem i ewentualnie go poprawić.
Pyton_000
6.10.2015, 14:38:12
Jakbyś napisał DOKŁADNIE co masz czego chcesz i jak ma to wyglądać to odpowiedź dostałbyś już dawno.
Skoro bierzesz się za kodowanie to wypadałoby nauczyć się zadawania precyzyjnych pytań. Rebus dostałeś, teraz Twoja kolej żeby się wysilić i napisać sobie rozwiązanie.
Piszesz najpierw jedno, dostajesz odpowiedź, potem piszesz że jednak to nie to i chcesz coś innego. Zdecyduj się. Wróć jak nauczysz się zadawać konkretne pytania.
MESSIAH :)
6.10.2015, 15:14:52
Cytat
I teraz chcę wyszukać np: "\red\" i chcę otrzymać całą wartość tego klucza.
Przepraszam ale którego zdania nie rozumiesz?
Panowie roz....bałem temat przy użyciu poniższego kodu:
$google + $WhatYouSearch = $OnlyEnglishSite
array_filter rozwiązało problem.
Panie Pyton ja się nie dziwie że Pan mi podał takiego mixa na kilkanaście linijek a tu proszę w 4 się zmieściłem. Ja się Panu nie dziwię skoro są kłopoty z czytaniem ze zrozumieniem to i odpowiedź nie najlepsza.
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.