NS uit array filteren

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ruben D

Ruben D

12/03/2013 17:16:26
Quote Anchor link
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?
 
PHP hulp

PHP hulp

21/11/2024 19:39:11
 
Eddy E

Eddy E

12/03/2013 22:58:29
Quote Anchor link
Wat heb je al aan code?

Kijk eens naar array_map(), substr($string, 0, 2), array_key (of key() ) en unset().
 
Ozzie PHP

Ozzie PHP

12/03/2013 23:07:31
Quote Anchor link
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?
 
Wouter J

Wouter J

12/03/2013 23:12:53
Quote Anchor link
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.
 
Ruben D

Ruben D

13/03/2013 16:24:18
Quote Anchor link
ik zou dus zoiets moeten hebben:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
foreach ($result waar  (["type"] == "NS") $record) { weergeven }
maar zo simpel is het niet vrees ik
?>
 
Ozzie PHP

Ozzie PHP

13/03/2013 16:34:24
Quote Anchor link
Zoiets?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
foreach ($result as $url) {
    if ($url['type'] === 'NS') {
        echo $url['target'];
    }
}

?>
 
Wouter J

Wouter J

13/03/2013 16:52:20
Quote Anchor link
Of:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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
}
?>


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
 
Ruben D

Ruben D

13/03/2013 18:01:54
Quote Anchor link
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 "=="?
 
Willem vp

Willem vp

13/03/2013 18:05:50
Quote Anchor link
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
 
Wouter J

Wouter J

13/03/2013 18:50:51
Quote Anchor link
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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
var_dump('0' == 0);  // true
var_dump('0' === 0); // false

var_dump(array() == false);  // true
var_dump(array() === false); // false

var_dump('abc123' == 123);  // true
var_dump('abc123' === 123); // false
?>
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.