Get all keys from an array that starts with a certain string
Hello Devs!
In this post, I will show you how to get all keys from an array that starts with a certain string. I will show you a simple example of PHP array filtering only certain keys. I will help you to give some examples of getting all key-value starting with a certain string from a PHP array. It's gonna be a simple example of PHP array_filter_key() function. So, Let's see below examples of PHP array gets all keys to start with a specific string.
I will provide 4 examples here.
So, let's start one by one.
Example 1:
<?php
$arr = [
'fb-1' => 'One',
'fb-2' => 'Two',
'3' => 'Three',
'fb-4' => 'Four',
];
$result = [];
$startWith = 'fb';
foreach($arr as $key => $value){
$exp_key = explode('-', $key);
if($exp_key[0] == $startWith){
$result[] = $value;
}
}
print_r($result);
?>
Output:Array
(
[0] => One
[1] => Two
[2] => Four
)
Example 2:
It's gonna be a functional approach an array_filter_key()
the function is taken and applied to an array of elements.
<?php
$arr = [
'fb-1' => 'One',
'fb-2' => 'Two',
'3' => 'Three',
'fb-4' => 'Four',
];
$result = array_filter_key($arr, function($key) {
return strpos($key, 'fb-') === 0;
});
print_r($result);
?>
Output:
Array
(
[0] => One
[1] => Two
[2] => Four
)
Example 3:
In the third example, we will use a procedural approach.
<?php
$arr = [
'fb-1' => 'One',
'fb-2' => 'Two',
'3' => 'Three',
'fb-4' => 'Four',
];
$result = [];
foreach ($arr as $key => $value) {
if (strpos($key, 'fb-') === 0) {
$result[$key] = $value;
}
}
print_r($result);
?>
Output:
Array
(
[0] => One
[1] => Two
[2] => Four
)
Example 4:
In the last example, we will use a procedural approach but use objects.
<?php
$arr = [
'fb-1' => 'One',
'fb-2' => 'Two',
'3' => 'Three',
'fb-4' => 'Four',
];
$result = [];
$i = new ArrayIterator($arr);
while ($i->valid()) {
if (strpos($i->key(), 'fb-') === 0) {
$result[$i->key()] = $i->current();
}
$i->next();
}
print_r($result);
?>
Output:
Array
(
[0] => One
[1] => Two
[2] => Four
)
I hope it can be helpful.
Happy Coding :)