как получить значение из ассоциативного массива

Это мой массив:

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>
)
)

Как я могу получить все данные по элементам?

1

Решение

Вы можете получить информацию о массивах в 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]);
}
1

Другие решения

У вас есть целочисленные индексированные элементы в многомерном массиве. Чтобы получить доступ к одному элементу из массива, используйте имя массива и его индекс $myArray[1], Чтобы получить внутренний элемент этого предыдущего выбранного массива, используйте второй набор [index]$myArray[1][5] и так далее.

Чтобы динамически получить все элементы из массива, используйте вложенные foreach цикл:

foreach ($myArray as $key => $values) {
foreach ($values as $innerKey => $value) {
echo $value;
// OR
echo $myArray[$key][$innerKey];
}
}
0

Решение заключается в использовании 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"}
}
*/
0

Я думаю, это то, что вы ищете

$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);
0
По вопросам рекламы [email protected]