NS uit array filteren
Hallo allemaal,
Ik heb dus een array gelijk dit:
[5]=> array(5) { ["host"]=> string(13) "google.com" ["type"]=> string(2) "NS" ["target"]=> string(15) "ns4.google.com" ["class"]
Nu staat hier een stukje in met NS en mijn vraag is dus hoe krijg ik dit eruit gefilterd?
nu kijk ik gewoon of ik een string vindt die begint met "ns" (ns4.google.com) maar dan zijn er soms ook die niet met ns beginnen en die heb ik dan niet.
Ik wil dus alles war begint met "NS" ["target"]=> uit het array halen.
Iemand een idee?
Ik heb dus een array gelijk dit:
[5]=> array(5) { ["host"]=> string(13) "google.com" ["type"]=> string(2) "NS" ["target"]=> string(15) "ns4.google.com" ["class"]
Nu staat hier een stukje in met NS en mijn vraag is dus hoe krijg ik dit eruit gefilterd?
nu kijk ik gewoon of ik een string vindt die begint met "ns" (ns4.google.com) maar dan zijn er soms ook die niet met ns beginnen en die heb ik dan niet.
Ik wil dus alles war begint met "NS" ["target"]=> uit het array halen.
Iemand een idee?
Wat heb je al aan code?
Kijk eens naar array_map(), substr($string, 0, 2), array_key (of key() ) en unset().
Kijk eens naar array_map(), substr($string, 0, 2), array_key (of key() ) en unset().
Ruben D op 12/03/2013 17:16:26:
Ik wil dus alles war begint met "NS" ["target"]=> uit het array halen.
Dat is grappig. "NS" en ["target"] horen niet bij elkaar. "NS" hoort namelijk bij ["type"].
En wat wil je nu precies weghalen? Dat snap ik niet helemaal. Kun je een voorbeeld geven van hoe het nu is en hoe het moet worden?
Ik zou geen array_map (zoals Eddy voorstelde), maar array_filter gebruiken. Schrijf in de functie een if die kijkt of de string met NS begint, zo ja => return false, anders => return true.
ik zou dus zoiets moeten hebben:
Code (php)
1
2
3
4
2
3
4
<?php
foreach ($result waar (["type"] == "NS") $record) { weergeven }
maar zo simpel is het niet vrees ik
?>
foreach ($result waar (["type"] == "NS") $record) { weergeven }
maar zo simpel is het niet vrees ik
?>
Zoiets?
Of:
Maar nog beter is het om alleen de juiste items te selecteren, dat gaat veel tijdwinst opleveren. Voeg hiervoor WHERE type == 'NS' toe aan je query.
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
$result = ...;
$result = array_filter($result, function ($item) {
return 'NS' === $item['type'];
});
foreach ($result as ...) {
// ... doe wat leuks
}
?>
$result = ...;
$result = array_filter($result, function ($item) {
return 'NS' === $item['type'];
});
foreach ($result as ...) {
// ... doe wat leuks
}
?>
Maar nog beter is het om alleen de juiste items te selecteren, dat gaat veel tijdwinst opleveren. Voeg hiervoor WHERE type == 'NS' toe aan je query.
Gewijzigd op 13/03/2013 16:53:19 door Wouter J
Ik wil jullie bedanken voor de hulp (wordt te w<einig gedaan vindt ik), dit was dus wat ik zocht
wel één vraagje? ik ben al lang met php bezig maar heb nog nooit "===" gezien wat is het verschil met "=="?
wel één vraagje? ik ben al lang met php bezig maar heb nog nooit "===" gezien wat is het verschil met "=="?
Ruben D op 13/03/2013 18:01:54:
ik ben al lang met php bezig maar heb nog nooit "===" gezien wat is het verschil met "=="?
http://www.php.net/manual/en/language.operators.comparison.php
Quote:
ik ben al lang met php bezig maar heb nog nooit "===" gezien wat is het verschil met "=="?
Dat het ook op type controleert. Bijv:




