In PHP kann die Funktion IS_BOOL verwendet werden, um zu überprüfen, ob die Variable ein boolescher Wert ist, während die Funktion array_filter in einem Array basierend auf der angegebenen Rückruffunktion filtern kann. Wenn wir diese beiden kombinieren, können wir die Booleschen Elemente aus dem Array leicht herausfiltern.
IS_BOOL () : Wird verwendet, um zu überprüfen, ob die angegebene Variable von einem booleschen Typ ist. Es gibt true zurück, wenn die Variable ein boolescher Wert ( wahr oder falsch ) ist, andernfalls gibt sie false zurück.
<span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-title function_ invoke__">is_bool</span></span><span>(</span><span><span class="hljs-literal">true</span></span><span>)); </span><span><span class="hljs-comment">// bool(true)</span></span><span>
</span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-title function_ invoke__">is_bool</span></span><span>(</span><span><span class="hljs-number">1</span></span><span>)); </span><span><span class="hljs-comment">// bool(false)</span></span><span>
</span></span>
Array_filter () : Diese Funktion wird verwendet, um Elemente in einem Array zu filtern. Es empfängt zwei Parameter: Eines ist das zu filterne Array und der andere ist eine Rückruffunktion. Die Funktion der Rückruffunktion besteht darin, festzustellen, welche Elemente beibehalten werden müssen und welche gelöscht werden müssen. Wenn die Rückruffunktion true zurückgibt, wird das Element beibehalten. Wenn falsch , wird es entfernt.
<span><span><span class="hljs-variable">$arr</span></span><span> = [</span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-number">2</span></span><span>, </span><span><span class="hljs-number">3</span></span><span>, </span><span><span class="hljs-number">4</span></span><span>, </span><span><span class="hljs-number">5</span></span><span>];
</span><span><span class="hljs-variable">$filtered</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_filter</span></span><span>(</span><span><span class="hljs-variable">$arr</span></span><span>, function(</span><span><span class="hljs-variable">$value</span></span><span>) {
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$value</span></span><span> > </span><span><span class="hljs-number">2</span></span><span>;
});
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$filtered</span></span><span>); </span><span><span class="hljs-comment">// Ausgabe [3, 4, 5]</span></span><span>
</span></span>
Durch die Kombination von IS_BOOL und Array_filter können wir alle booleschen Elemente aus dem Array herausfiltern. Wir können überprüfen, ob jedes Element durch eine einfache Rückruffunktion ein boolescher Wert ist. Wenn es sich um einen Booleschen Wert handelt, wird das Element beibehalten.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Beispielarray</span></span><span>
</span><span><span class="hljs-variable">$array</span></span><span> = [</span><span><span class="hljs-literal">true</span></span><span>, </span><span><span class="hljs-literal">false</span></span><span>, </span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-string">"hello"</span></span><span>, </span><span><span class="hljs-literal">null</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-literal">false</span></span><span>];
</span><span><span class="hljs-comment">// verwenden array_filter Und is_bool Kombiniert zu filtern booleschen Werte</span></span><span>
</span><span><span class="hljs-variable">$filteredArray</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_filter</span></span><span>(</span><span><span class="hljs-variable">$array</span></span><span>, function(</span><span><span class="hljs-variable">$value</span></span><span>) {
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-title function_ invoke__">is_bool</span></span><span>(</span><span><span class="hljs-variable">$value</span></span><span>); </span><span><span class="hljs-comment">// Nur der Boolesche Wert ist erhalten</span></span><span>
});
</span><span><span class="hljs-comment">// Druckergebnisse</span></span><span>
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$filteredArray</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
<span><span>Array
(
[</span><span><span class="hljs-meta">0</span></span><span>] => </span><span><span class="hljs-number">1</span></span><span>
[</span><span><span class="hljs-meta">1</span></span><span>] =>
[</span><span><span class="hljs-meta">5</span></span><span>] => </span><span><span class="hljs-number">1</span></span><span>
[</span><span><span class="hljs-meta">7</span></span><span>] =>
)
</span></span>
In diesem Beispiel wird Array_Filter alle Elemente im $ Array -Array itererieren, nur die Elemente, die boolesche Werte ( wahr oder falsch ) sind, werden erhalten. Beachten Sie, dass Array_filter die Schlüssel des ursprünglichen Arrays behält.
Array_Filter behält standardmäßig die ursprünglichen Schlüssel des Arrays. Wenn Sie möchten, dass die nach dem Filterung erhaltenen Array-Tasten kontinuierlich sind, können Sie die Funktion array_values verwenden, um das Array wieder zu indeminieren.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$array</span></span><span> = [</span><span><span class="hljs-literal">true</span></span><span>, </span><span><span class="hljs-literal">false</span></span><span>, </span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-string">"hello"</span></span><span>, </span><span><span class="hljs-literal">null</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-literal">false</span></span><span>];
</span><span><span class="hljs-comment">// Filter-Boolesche Werte und Neuindextasten</span></span><span>
</span><span><span class="hljs-variable">$filteredArray</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_values</span></span><span>(</span><span><span class="hljs-title function_ invoke__">array_filter</span></span><span>(</span><span><span class="hljs-variable">$array</span></span><span>, function(</span><span><span class="hljs-variable">$value</span></span><span>) {
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-title function_ invoke__">is_bool</span></span><span>(</span><span><span class="hljs-variable">$value</span></span><span>); // Nur der Boolesche Wert ist erhalten
}));
</span><span><span class="hljs-comment">// Druckergebnisse</span></span><span>
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$filteredArray</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
<span><span>Array
(
[</span><span><span class="hljs-meta">0</span></span><span>] => </span><span><span class="hljs-number">1</span></span><span>
[</span><span><span class="hljs-meta">1</span></span><span>] =>
[</span><span><span class="hljs-meta">2</span></span><span>] => </span><span><span class="hljs-number">1</span></span><span>
[</span><span><span class="hljs-meta">3</span></span><span>] =>
)
</span></span>
Mit Array_Values erhalten wir ein neues Array mit Tasten ab 0 und behalten immer noch alle booleschen Werte bei.
Durch die Kombination von IS_BOOL und Array_filter können wir alle booleschen Elemente aus dem Array bequem herausfiltern. Array_filter liefert flexible Filterfunktionen, während IS_BOOL genau bestimmen kann, ob ein Element einen Booleschen Typ ist. Dieser Ansatz ist sehr geeignet für Szenarien, in denen die booleschen Werte bei der Verarbeitung von Daten präzise filtern.
In der tatsächlichen Entwicklung können Sie Array-Daten effizient verarbeiten, wenn Sie die Verwendung dieser integrierten Funktionen verstehen und beherrschen.
Verwandte Tags:
array_filter