Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> array_search nie wyszukuje
MESSIAH :)
post 6.10.2015, 09:17:08
Post #1





Grupa: Zarejestrowani
Postów: 249
Pomógł: 0
Dołączył: 22.12.2011

Ostrzeżenie: (10%)
X----


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.


--------------------
Go to the top of the page
+Quote Post
Malukaz
post 6.10.2015, 09:23:28
Post #2





Grupa: Zarejestrowani
Postów: 77
Pomógł: 4
Dołączył: 16.04.2009

Ostrzeżenie: (10%)
X----


  1. function recursive_array_search($needle,$haystack) {
  2. foreach($haystack as $key=>$value) {
  3. $current_key=$key;
  4. if($needle===$value OR (is_array($value) && recursive_array_search($needle,$value) !== false)) {
  5. return $current_key;
  6. }
  7. }
  8. return false;
  9. }
Go to the top of the page
+Quote Post
MESSIAH :)
post 6.10.2015, 09:28:22
Post #3





Grupa: Zarejestrowani
Postów: 249
Pomógł: 0
Dołączył: 22.12.2011

Ostrzeżenie: (10%)
X----


array_search jest po to aby nie pisać petli.


--------------------
Go to the top of the page
+Quote Post
nospor
post 6.10.2015, 09:36:16
Post #4





Grupa: Moderatorzy
Postów: 36 457
Pomógł: 6297
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
MESSIAH :)
post 6.10.2015, 09:50:43
Post #5





Grupa: Zarejestrowani
Postów: 249
Pomógł: 0
Dołączył: 22.12.2011

Ostrzeżenie: (10%)
X----


Nowy czyli? Ja mam 5.6.11 i nie działa. Dałem tak jak napisałeś 0 i nic dalej to samo.


--------------------
Go to the top of the page
+Quote Post
nospor
post 6.10.2015, 09:51:45
Post #6





Grupa: Moderatorzy
Postów: 36 457
Pomógł: 6297
Dołączył: 27.12.2004




No zobacz, a mi działa smile.gif
Ja mam 5.5 i ponoc wlasnie od 5.5 to ma juz dzialac


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
MESSIAH :)
post 6.10.2015, 09:55:21
Post #7





Grupa: Zarejestrowani
Postów: 249
Pomógł: 0
Dołączył: 22.12.2011

Ostrzeżenie: (10%)
X----


Teraz zwraca mi fals lub 0. Czemu ta funkcja nie zwraca całej wartości?

Ten post edytował MESSIAH :) 6.10.2015, 10:03:51


--------------------
Go to the top of the page
+Quote Post
Pyton_000
post 6.10.2015, 10:06:34
Post #8





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Dostałeś bana na manual? Tak trudno sprawdzić co zwraca funkcja ?
Go to the top of the page
+Quote Post
MESSIAH :)
post 6.10.2015, 10:12:38
Post #9





Grupa: Zarejestrowani
Postów: 249
Pomógł: 0
Dołączył: 22.12.2011

Ostrzeżenie: (10%)
X----


No zwraca odpowiedni klucz. Ale mi zawraca 0. To jest poprawne? Ja bym chciał aby mi zwróciło wartość klucza.

Ten post edytował MESSIAH :) 6.10.2015, 10:13:54


--------------------
Go to the top of the page
+Quote Post
nospor
post 6.10.2015, 10:35:39
Post #10





Grupa: Moderatorzy
Postów: 36 457
Pomógł: 6297
Dołączył: 27.12.2004




Ok, a jaką konkretnie wartosc chciałbyś uzyskać?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
MESSIAH :)
post 6.10.2015, 12:02:08
Post #11





Grupa: Zarejestrowani
Postów: 249
Pomógł: 0
Dołączył: 22.12.2011

Ostrzeżenie: (10%)
X----


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".


--------------------
Go to the top of the page
+Quote Post
nospor
post 6.10.2015, 12:46:41
Post #12





Grupa: Moderatorzy
Postów: 36 457
Pomógł: 6297
Dołączył: 27.12.2004




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?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
MESSIAH :)
post 6.10.2015, 13:37:14
Post #13





Grupa: Zarejestrowani
Postów: 249
Pomógł: 0
Dołączył: 22.12.2011

Ostrzeżenie: (10%)
X----


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.


--------------------
Go to the top of the page
+Quote Post
Pyton_000
post 6.10.2015, 13:43:12
Post #14





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Cisną mi się na usta bardzo niecenzuralne słowa pod Twoim adresem ale zachowam je dla siebie...

array_column, foreach, mb_stripos

Ten post edytował Pyton_000 6.10.2015, 13:43:26
Go to the top of the page
+Quote Post
MESSIAH :)
post 6.10.2015, 14:30:10
Post #15





Grupa: Zarejestrowani
Postów: 249
Pomógł: 0
Dołączył: 22.12.2011

Ostrzeżenie: (10%)
X----


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ć.


--------------------
Go to the top of the page
+Quote Post
Pyton_000
post 6.10.2015, 14:38:12
Post #16





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


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.
Go to the top of the page
+Quote Post
MESSIAH :)
post 6.10.2015, 15:14:52
Post #17





Grupa: Zarejestrowani
Postów: 249
Pomógł: 0
Dołączył: 22.12.2011

Ostrzeżenie: (10%)
X----


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.

Ten post edytował MESSIAH :) 6.10.2015, 15:55:01


--------------------
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 27.04.2024 - 17:33