Php Generate Key Value Array
PHP offers us a special type of array called an Associative Array that allows us to create an array with Key-Value pairs. The syntax for creating an Associative Array is as follows: Syntax 1: Using array. Picks one or more random entries out of an array, and returns the key (or keys) of the random entries. It uses a pseudo random number generator that is not suitable for cryptographic purposes.
![Php Generate Key Value Array Php Generate Key Value Array](https://i.stack.imgur.com/60b84.png)
Nov 21, 2019 php search multidimensional array by key and value. Here we will learn how to search in the multidimensional array for value and return key. Also learn how to search multidimensional array for key and return value. Sometimes we need to search in an array or multidimensional array by key or value without using any function. Arraykeys (PHP 4, PHP 5, PHP 7). It takes an array that contains key-value pairs and returns an array where they are actually the key and value. RE: bananasims at hotmail dot com I also needed a work around to not having a new version of PHP and wanting my own keys. Bananasims code doesn't like having an array as the second parameter. Nov 15, 2017 Arrays in PHP is a type of data structure that allows us to store multiple elements of similar data type under a single variable thereby saving us the effort of creating a different variable for every data. The arrays are helpful to create a list of elements of similar types, which can be accessed using their index or key.
Using objects with array_fill may cause unexpected results. Consider the following:
<?php
class Foo {
public $bar = 'banana';
}
//fill an array with objects
$array = array_fill(0, 2, new Foo());
var_dump($array);
/*
array(2) {
[0]=>
object(Foo)#1 (1) {
['bar']=>
string(6) 'banana'
}
[1]=>
object(Foo)#1 (1) {
['bar']=>
string(6) 'banana'
}
} */
//now we change the attribute of the object stored in index 0
//this actually changes the attribute for EACH object in the ENTIRE array
$array[0]->bar = 'apple';
var_dump($array);
/*
array(2) {
[0]=>
object(Foo)#1 (1) {
['bar']=>
string(5) 'apple'
}
[1]=>
object(Foo)#1 (1) {
['bar']=>
string(5) 'apple'
}
}
*/
?>
Objects are filled in the array BY REFERENCE. They are not copied for each element in the array.
(PHP 5 >= 5.2.0, PHP 7)
array_fill_keys — Fill an array with values, specifying keys
Description
$keys
, mixed$value
) : arrayGenerate ssh rsa key mac. Fills an array with the value of the value
parameter, using the values of the keys
array as keys.
Parameters
keys
Array of values that will be used as keys. Illegal values for key will be converted to string.
value
Value to use for filling
Examples
Example #1 array_fill_keys() example
<?php
$keys = array('foo', 5, 10, 'bar');
$a = array_fill_keys($keys, 'banana');
print_r($a);
?>
See Also
- array_fill() - Fill an array with values
- array_combine() - Creates an array by using one array for keys and another for its values
<?php
$a = array('1');
var_dump(array_fill_keys($a, 'test'));
?>
array(1) {
[1]=>
string(4) 'test'
}
now string key '1' become an integer value 1, be careful.
If an associative array is used as the second parameter of array_fill_keys, then the associative array will be appended in all the values of the first array.
e.g.
<?php
$array1 = array(
'a' => 'first',
'b' => 'second',
'c' => 'something',
'red'
);
$array2 = array(
'a' => 'first',
'b' => 'something',
'letsc'
);
print_r(array_fill_keys($array1, $array2));
?>
The output will be
Array(
[first] => Array(
[a] => first,
[b] => something,
[0] => letsc
),
[second] => Array(
[a] => first,
[b] => something,
[0] => letsc
),
[something] => Array(
[a] => first,
[b] => something,
[0] => letsc
),
[red] => Array(
[a] => first,
[b] => something,
[0] => letsc
)
)
This function does the same as:
<?php
$array = array_combine($keys,array_fill(0,count($keys),$value));
?>
RE: bananasims at hotmail dot com
I also needed a work around to not having a new version of PHP and wanting my own keys. bananasims code doesn't like having an array as the second parameter..
Here's a slightly modified version than can handle 2 arrays as inputs:
//we want these values to be keys
$arr1 = (0 => 'abc', 1 => 'def');
/we want these values to be values
$arr2 = (0 => 452, 1 => 128);
function array_fill_keys($keyArray, $valueArray) {
if(is_array($keyArray)) {
foreach($keyArray as $key => $value) {
$filledArray[$value] = $valueArray[$key];
}
}
return $filledArray;
}
array_fill_keys($arr1, $arr2);
returns:
abc => 452, def =>128
Php Array Add Key Value
¶Scratchy's version still doesn't work like the definition describes. Here's one that can take a mixed variable as the second parameter, defaulting to an empty string if it's not specified. Don't know if this is exactly how the function works in later versions but it's at least a lot closer.
function array_fill_keys($target, $value = ') {
if(is_array($target)) {
foreach($target as $key => $val) {
$filledArray[$val] = is_array($value) ? $value[$key] : $value;
}
}
return $filledArray;
}
This works for either strings or numerics, so if we have
$arr1 = array(0 => 'abc', 1 => 'def');
$arr2 = array(0 => 452, 1 => 128);
$arr3 = array(0 => 'foo', 1 => 'bar');
then
array_fill_keys($arr1,$arr2)
returns: [abc] => 452, [def] => 128
array_fill_keys($arr1,0)
returns: [abc] => 0, [def] => 0
array_fill_keys($arr2,$arr3)
returns: [452] => foo, [128] => bar
array_fill_keys($arr3,'BLAH')
returns: [foo] => BLAH, [bar] => BLAH
and array_fill_keys($arr1)
returns: [abc] =>, [def] =>
Some of the versions do not have this function.
I try to write it myself.
You may refer to my script below
function array_fill_keys($array, $values) {
if(is_array($array)) {
foreach($array as $key => $value) {
$arraydisplay[$array[$key]] = $values;
}
}
return $arraydisplay;
}
Php Generate Key Value Array Php
ntd at entidi dot it ¶To remove arbitrary keys from an associative array:
<?php
function nuke_keys($keys, $array) {
return array_diff_key($array, array_fill_keys($keys, 0));
}
$array = array('blue' => 1, 'red' => 2, 'green' => 3, 'purple' => 4);
$keys = array('red', 'purple');
print_r(nuke_keys($keys, $array));
?>
The above snippet will return:
Array
(
[blue] => 1
[green] => 3
)
$keys = array(1, 2, 3);
// Fill it with value.
$keys = array_fill_keys($keys, 'banana');
print_r($keys);
// Fill it different value.
$apples = array_fill_keys(array_keys($keys), 'apple');
print_r($apples);
// Output:
Array (
[1] => banana
[2] => banana
[3] => banana
)
Array (
[1] => apple
[2] => apple
[3] => apple
)
- Array Functions
- Deprecated