Это мой массив:
Array
(
[0] => Array
(
[0] => S No.
[1] => Contact Message
[2] => Name
[3] => Contact Number
[4] => Email ID
)
[1] => Array
(
[0] => 1
[1] => I am interested in your property. Please get in touch with me.
[2] => lopa <br/>(Individual)
[3] => 1234567890
[4] => <a href="mailto:[email protected]">[email protected]</a>
)
[2] => Array
(
[0] => 2
[1] => This user is looking for 3 BHK Multistorey Apartment for Sale in Sohna, Gurgaon and has viewed your contact details.
[2] => shiva <br/>(Individual)
[3] => 2135467890
[4] => <a href="mailto:[email protected]">[email protected]</a>
)
)
Как я могу получить все данные по элементам?
Вы можете получить информацию о массивах в PHP на официальная страница документации по PHP
Вы можете получить доступ к массивам, используя квадратные скобки вокруг клавиши, которую вы хотите выбрать [key]
,
Так $array[1]
даст тебе
Array
(
[0] => 1
[1] => I am interested in your property. Please get in touch with me.
[2] => lopa <br/>(Individual)
[3] => 1234567890
[4] => <a href="mailto:[email protected]">[email protected]</a>
)
А также $array[1][2]
дам тебе:
lopa <br/>(Individual)
Или вы можете пройтись по элементам массива, используя такие циклы, как foreach
или for
петля.
// perfect for assoc arrays
foreach($array as $key => $element) {
var_dump($key, $element);
}
// alternative for arrays with seamless numeric keys
$elementsCount = count($array);
for($i = 0; $i < $elementsCount; ++$i) {
var_dump($array[$i]);
}
У вас есть целочисленные индексированные элементы в многомерном массиве. Чтобы получить доступ к одному элементу из массива, используйте имя массива и его индекс $myArray[1]
, Чтобы получить внутренний элемент этого предыдущего выбранного массива, используйте второй набор [index]
— $myArray[1][5]
и так далее.
Чтобы динамически получить все элементы из массива, используйте вложенные foreach
цикл:
foreach ($myArray as $key => $values) {
foreach ($values as $innerKey => $value) {
echo $value;
// OR
echo $myArray[$key][$innerKey];
}
}
Решение заключается в использовании array_reduce
:
$header = array_map(
function() { return []; },
array_flip( array_shift( $array ) )
); // headers
array_reduce( $array , function ($carry, $item) {
$i = 0;
foreach( $carry as $k => $v ) {
$carry[$k][] = $item[$i++];
}
return $carry;
}, $header );
Прежде всего мы получаем заголовок из самого первого элемента входного массива. Затем мы отображаем-уменьшаем вход.
Это дает:
$array = [['A', 'B', 'C'], ['a1', 'b1', 'c1'], ['a2', 'b2', 'c2'], ['a3', 'b3', 'c3']];
/*
array(3) {
'A' =>
array(3) {
[0] =>
string(2) "a1"[1] =>
string(2) "a2"[2] =>
string(2) "a3"}
'B' =>
array(3) {
[0] =>
string(2) "b1"[1] =>
string(2) "b2"[2] =>
string(2) "b3"}
'C' =>
array(3) {
[0] =>
string(2) "c1"[1] =>
string(2) "c2"[2] =>
string(2) "c3"}
}
*/
Я думаю, это то, что вы ищете
$array = Array
(
0=> Array
(
0 => 'S No.',
1 => 'Contact Message',
2 => 'Name',
3 => 'Contact Number',
4 => 'Email ID'
),
1 => Array
(
0 => 1,
1 => 'I am interested in your property. Please get in touch with me.',
2 => 'lopa <br/>(Individual)',
3 => '1234567890',
4 => '<a href="mailto:[email protected]">[email protected]</a>',
),
2 => Array
(
0 => 2,
1 => 'This user is looking for 3 BHK Multistorey Apartment for Sale in Sohna, Gurgaon and has viewed your contact details.',
2 => 'shiva <br/>(Individual)',
3 => '2135467890',
4 => '<a href="mailto:[email protected]">[email protected]</a>',
)
);
$result_array = array();
array_shift($array);
reset($array);
foreach($array as $x=>$array2){
foreach($array2 as $i => $arr){
if($i == 1){
$result_array[$x]['Contact Message'] = $arr;
}elseif($i == 2){
$result_array[$x]['Name'] = $arr;
}elseif($i == 3){
$result_array[$x]['Contact Number'] =$arr;
}elseif($i == 4){
$result_array[$x]['Email ID'] = $arr;
}
}
}
print_r($result_array);