Create new array using items from current array [duplicate] - php

This question already has answers here:
Is there a function to extract a 'column' from an array in PHP?
(15 answers)
Closed 6 years ago.
I have an array that looks like this....
Array
(
[result] => Success
[finals] => Array
(
[0] => Array
(
[id] => 633
[name] => RESULT84
)
[0] => Array
(
[id] => 766
[name] => RESULT2
)
[0] => Array
(
[id] => 22
[name] => RESULT1
)
)
)
Using PHP, I am trying to create another array from it that only contains the [name] field.
Do I need to create a new array from this or is there a way to use it as is?

With array_columm(), assuming your array is in a variable called $data:
$names = array_column($data['finals'], 'name');
print_r($names);
Yields:
Array
(
[0] => RESULT84
[1] => RESULT2
[2] => RESULT1
)
array_column() is available from PHP version 5.5.0.
You may also use array_map():
$names = array_map(function ($final) {
return $final['name'];
}, $data['finals']);
Hope this helps :)

Related

PHP Array Duplicate Value [duplicate]

This question already has answers here:
How to remove duplicate values from a multi-dimensional array in PHP
(18 answers)
Closed 6 years ago.
I have an array like this:
Array
(
[0] => Array
(
[0] => Array
(
[Foo] => FooBar
)
)
[1] => Array
(
[0] => Array
(
[Foo] => BarFoo
)
)
[2] => Array
(
[0] => Array
(
[Foo] => FooFoo
)
)
[3] => Array
(
[0] => Array
(
[Foo] => FooFoo
)
)
)
I basically want to be able to look at [2] and [3] and be able to merge those two together since their values are the same. Basically I just don't want to double count. Is there a simple way of doing this while looping through?
You can try this
$unique_array = array_map("unserialize",
array_unique(array_map("serialize", $your_array)));

How to remove duplicate values from arrays [duplicate]

This question already has answers here:
How to remove duplicate values from a multi-dimensional array in PHP
(18 answers)
Closed 7 years ago.
I have these arrays i want to remove remove duplicate links from my array how can i do this please help
I have many links in my array first array have no key and others have key all links have unique ids i want to remove same id links and submit it into mysql. all work is done now i am stuck in this duplicate issue please kindly help me.
Array
(
[0] => mainlink
[apple] => Array
(
[0] => http://apple1.to/getac/fdjpkb9xdixq
[1] => http://apple1.to/getac/fdjpkb9xdixq
[2] => http://apple1.to/getac/fdjpkb9xdixq
[3] => http://apple2.to/getac/fdjpkb9xdixq
[4] => http://apple2.to/getac/fdjpkb9xdixq
[5] => http://apple2.to/getac/fdjpkb9xdixq
)
[banana] => Array
(
[0] => http://banana1.to/getac/fdjpkb9xdixq
[1] => http://banana2.to/getac/fdjpkb9xdixq
[2] => http://banana1.to/getac/fdjpkb9xdixq
[3] => http://banana2.to/getac/fdjpkb9xdixq
)
)
Thanks.
I want this result:
Array
(
[0] => mainlink
[apple] => Array
(
[0] => http://apple1.to/getac/fdjpkb9xdixq
[3] => http://apple2.to/getac/fdjpkb9xdixq
)
[banana] => Array
(
[0] => http://banana1.to/getac/fdjpkb9xdixq
[1] => http://banana2.to/getac/fdjpkb9xdixq
)
)
This should work for you:
Just loop through your array with array_map() and check if it is an array or not. If yes just return the unique array with array_unique(), else just return the value.
<?php
$unique = array_map(function($v){
if(is_array($v))
return array_unique($v);
return $v;
}, $array);
print_r($unique);
?>

Associative array to normal array in PHP [duplicate]

This question already has answers here:
How to "flatten" a multi-dimensional array to simple one in PHP? [duplicate]
(23 answers)
Closed 7 years ago.
I have a php variable which reads data from CSV file using str_getcsv() function as below:
$test = array_map('str_getcsv', file($path))
Now $test contains array as below:
Array
(
[0] => Array
(
[0] => Array
(
[0] => abc
)
[1] => Array
(
[0] => def
)
[2] => Array
(
[0] => ghi
)
[3] => Array
(
[0] => jkl
)
)
)
I would like to convert it in simple array as follows:
Array
(
[0] => abc
[1] => def
[2] => ghi
[3] => jkl
)
Can somebody help?
$array = array_values($array);
try this

how to change index of an array in php [duplicate]

This question already has answers here:
Built-in PHP function to reset the indexes of an array?
(4 answers)
Closed 8 years ago.
I want to change the index of an array after doing some operations
My actual output is
Array
(
[0] => Array
(
[0] => 4
[1] => 6
)
[2] => Array
(
[0] => 1
[1] => 7
)
[5] => Array
(
[0] => 1
[1] => 7
)
)
I want to be something like this
Array
(
[0] => Array
(
[0] => 4
[1] => 6
)
[1] => Array
(
[0] => 1
[1] => 7
)
[2] => Array
(
[0] => 1
[1] => 7
)
)
How to achieve this in php???? Thanks in advance
Extract only the values to a new array and the keys will be indexed from 0:
$array = array_values($array);
The array_values() function returns only values from array.
Thus, resetting all the array keys to numeric starting from 0, 1, 2, ...
You can do it using
$array = array_values($array);
http://php.net/manual/en/function.array-values.php
you can use the "array_values" Function for that.
Please refer this link http://www.php.net/manual/en/language.types.array.php

array_map triple dimensional array [duplicate]

This question already has answers here:
How do you reindex an array in PHP but with indexes starting from 1?
(12 answers)
How to re-index all subarray elements of a multidimensional array?
(6 answers)
Closed 10 months ago.
How do I run a array_map on a triple dimensional array? Where I want to "clear" the innermost array?
It looks like this:
Array
(
[1] => Array
(
[1] => Array
(
[cat] => Hello!
[url] => hello
)
[5] => Array
(
[cat] => Good job!
[url] => good-job
)
[2] => Array
(
[2] => Array
(
[cat] => How are you?
[url] => how-are-you
)
[6] => Array
(
[cat] => Running shoes
[url] => running-shoes
)
)
)
I want to make it look like this:
Array
(
[1] => Array
(
[1] => Array
(
[cat] => Hello!
[url] => hello
)
[2] => Array
(
[cat] => Good job!
[url] => good-job
)
[2] => Array
(
[1] => Array
(
[cat] => How are you?
[url] => how-are-you
)
[2] => Array
(
[cat] => Running shoes
[url] => running-shoes
)
)
)
This solution Reset keys of array elements in php? "just" works on tow diemensional arrays, if Im not wrong.
you could write a short function to do it with array_map:
function mappingfunction($array){
$remappedarray = array();
foreach($array as $layer){
$remappedarray[] = array_map('array_values', $array);
}
return $remappedarray;
}
if you want to preserve the keys:
function mappingfunction($array){
$remappedarray = array();
foreach($array as $key => $layer){
$remappedarray[$key] = array_map('array_values', $array);
}
return $remappedarray;
}
Untested, but should point you in the right direction.

Categories