foreach multie Array
ik zit al een tijd lang te stoeien met de manier waar op je op een effectieve manier Array laat weergeven op mijn site. Dit is een voorbeeld van de Array zoals deze via een Facebook applicatie word gevormd.
Ik zou graag alle onderdelen van de Array apart willen oproepen.
Array
(
[data] => Array
(
[0] => Array
(
[message] =>******
[story] => ****
[created_time] => 2016-10-05T09:10:19+0000
[id] => ****
)
Wat is nu handig? Sommige voorbeelden geven 3 foreach die in elkaar verweven zitten. Ik krijg het niet helemaal helder. Ik hoop dat jullie mij hierbij kunnen helpen. Als iemand het kan zou ik het heel tof vinden als niet alleen een code geplaatst word maar daarbij ook een korte uitleg waarom de code zo geformuleerd is.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
$data = array (
'data' => array (
'message' => '******',
'story' => '****',
'created_time' => '2016-10-05T09:10:19+0000',
'id' => '****'
)
);
echo '<pre>';
print_r($data);
echo '</pre>';
foreach ($data as $key => $value) {
foreach ($value as $key2 => $value2) {
echo $key2 . ' - ' . $value2 . '<br />';
}
}
?>
$data = array (
'data' => array (
'message' => '******',
'story' => '****',
'created_time' => '2016-10-05T09:10:19+0000',
'id' => '****'
)
);
echo '<pre>';
print_r($data);
echo '</pre>';
foreach ($data as $key => $value) {
foreach ($value as $key2 => $value2) {
echo $key2 . ' - ' . $value2 . '<br />';
}
}
?>
Gewijzigd op 05/10/2016 17:52:18 door Adoptive Solution
Hebben alle array's meerdere records?
@SanThe, ja alle Array's hebben meerder records. Ze zien er afgezien van de inhoud allemaal het zelfde uit.
$nieuw = $data['id']
Stel je duwt nog een array in $data, dan lees je het zo uit:
$nieuw2 = $data['nogeenarray']['id'];
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
$array = array( // <-- numerieke array (automatische nummering vanaf 0)
array( // <-- associatieve array
'id' => 1,
'message' => 'bla bla bla',
'created' => '2016-10-05 09:10:19',
),
array( // <-- associatieve array
'id' => 2,
'message' => 'nog meer bla bla bla',
'created' => '2016-10-06 10:05:12',
)
);
foreach($array as $item)
{
echo $item['id'] . '<br>';
echo $item['message'] . '<br>';
echo $item['created'] . '<br><br>';
}
//Benaderen zonder foreach kan ook:
echo $array[0]['id'] . '<br>';
echo $array[0]['message'] . '<br>';
echo $array[0]['created'] . '<br><br>';
echo $array[1]['id'] . '<br>';
echo $array[1]['message'] . '<br>';
echo $array[1]['created'] . '<br><br>';
// zoals je ziet begint de telling bij 0.
?>
$array = array( // <-- numerieke array (automatische nummering vanaf 0)
array( // <-- associatieve array
'id' => 1,
'message' => 'bla bla bla',
'created' => '2016-10-05 09:10:19',
),
array( // <-- associatieve array
'id' => 2,
'message' => 'nog meer bla bla bla',
'created' => '2016-10-06 10:05:12',
)
);
foreach($array as $item)
{
echo $item['id'] . '<br>';
echo $item['message'] . '<br>';
echo $item['created'] . '<br><br>';
}
//Benaderen zonder foreach kan ook:
echo $array[0]['id'] . '<br>';
echo $array[0]['message'] . '<br>';
echo $array[0]['created'] . '<br><br>';
echo $array[1]['id'] . '<br>';
echo $array[1]['message'] . '<br>';
echo $array[1]['created'] . '<br><br>';
// zoals je ziet begint de telling bij 0.
?>
Toevoeging op 06/10/2016 20:03:56:
Mocht je (later) een stapje verder willen gaan dan kun je ook een array van objecten maken.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?php
class Message
{
public $id;
public $message;
public $created;
public function __construct($id, $message, $created = '')
{
$this->id = $id;
$this->message = $message;
$this->created = new \DateTime($created);
}
// hier de getters en setters
}
$array = array(
new Message(1, 'bla bla bla'),
new Message(2, 'nog meer bla bla bla'),
);
foreach($array as $item)
{
echo $item->id . '<br>';
echo $item->message . '<br>';
echo $item->created . '<br><br>';
}
//Benaderen zonder foreach kan ook:
echo $array[0]->id . '<br>';
echo $array[0]->message . '<br>';
echo $array[0]->created . '<br><br>';
echo $array[1]->id . '<br>';
echo $array[1]->message . '<br>';
echo $array[1]->created . '<br><br>';
?>
class Message
{
public $id;
public $message;
public $created;
public function __construct($id, $message, $created = '')
{
$this->id = $id;
$this->message = $message;
$this->created = new \DateTime($created);
}
// hier de getters en setters
}
$array = array(
new Message(1, 'bla bla bla'),
new Message(2, 'nog meer bla bla bla'),
);
foreach($array as $item)
{
echo $item->id . '<br>';
echo $item->message . '<br>';
echo $item->created . '<br><br>';
}
//Benaderen zonder foreach kan ook:
echo $array[0]->id . '<br>';
echo $array[0]->message . '<br>';
echo $array[0]->created . '<br><br>';
echo $array[1]->id . '<br>';
echo $array[1]->message . '<br>';
echo $array[1]->created . '<br><br>';
?>
Gewijzigd op 06/10/2016 20:04:28 door Frank Nietbelangrijk