Szukam szybkiego sposobu, aby zamienić tablicę asocjacyjną w ciąg. Typowa struktura jest podobna do ciągu zapytania URL, ale z konfigurowalnymi separatorami, więc mogę użyć „ &
” dla linków xhtml lub „ &
” w inny sposób.
Moją pierwszą skłonnością jest użycie, foreach
ale ponieważ moja metoda mogłaby zostać wywołana wiele razy w jednym żądaniu, obawiam się, że może być zbyt wolna.
<?php
$Amp = $IsXhtml ? '&' : '&';
$Parameters = array('Action' => 'ShowList', 'Page' => '2');
$QueryString = '';
foreach ($Parameters as $Key => $Value)
$QueryString .= $Amp . $Key . '=' . $Value;
Czy jest szybszy sposób?
Odpowiedzi:
Możesz
http_build_query()
to zrobić.źródło
http_build_query
ucieczka przed specjalnym charakteremNawiasem mówiąc, szukałem najlepszego sposobu na implodowanie tablicy asocjacyjnej, ale używając własnych separatorów itp.
Zrobiłem to za pomocą funkcji PHP array_walk (), aby umożliwić mi dołączenie tablicy asocjacyjnej do listy parametrów, które można następnie zastosować do znacznika HTML ...
Oczywiście możesz to w jakiś sposób umieścić we własnej funkcji, ale daje ci to wyobrażenie o tym, jak możesz dołączyć do tablicy asocjacyjnej przy użyciu własnej metody. Mam nadzieję, że to komuś pomoże :)
źródło
Jeśli nie martwisz się dokładnym formatowaniem, potrzebujesz czegoś prostego, ale bez podziałów wiersza
print_r
, możesz również użyćjson_encode($value)
do szybkiego i prostego sformatowanego wyjścia. ( zauważ, że działa dobrze również w przypadku innych typów danych )źródło
Oto moje rozwiązanie, na przykład dla atrybutów danych div:
źródło
Jednym ze sposobów jest użycie
print_r(array, true)
i zwróci łańcuch reprezentujący tablicęźródło
key=value
połączeniu z dostarczonym separatorem.źródło
Jednowierszowy do tworzenia ciągu atrybutów HTML (z cudzysłowami) z prostej tablicy:
Przykład:
źródło
Moje rozwiązanie:
źródło
A co z tym krótszym, bardziej przejrzystym, a jednocześnie bardziej intuicyjnym z array_walk
źródło
To najbardziej podstawowa wersja, jaką przychodzi mi do głowy:
źródło
key=value
z wybranym separatorem!$companies->toArray()
- jest to na wszelki wypadek, jeśli twój$variable
jest obiektem, w przeciwnym razie po prostu przekaż $ firm.Otóż to!
źródło