Mergen naar single array

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Bas D L

Bas D L

01/09/2012 18:08:20
Quote Anchor link
Ik hoop dat ik de vraag juist stel, hoe zou je bv onderstaande array kunnen mergen?

Array ( [0] => Array ( [0] => 3 [day] => 3 ) [1] => Array ( [0] => 4 [day] => 4 ) [2] => Array ( [0] => 6 [day] => 6 ) )

Groet Bas
 
PHP hulp

PHP hulp

25/08/2019 17:04:57
 
Wouter J

Wouter J

01/09/2012 18:57:48
Quote Anchor link
Met array_merge. Met een hele simpele zoekopdracht: php array mergen was je hier ook al op gekomen. Zou je in het vervolg eerst willen zoeken voordat je een topic start? Alvast bedankt!
 
Bas D L

Bas D L

01/09/2012 20:07:28
Quote Anchor link
Uiteraard heb ik daar naar gekeken.

$resultset = array_merge($resultset);
print_r($resultset);

Als ik bovenstaand doe krijg ik hetzelfde result
 
- SanThe -

- SanThe -

01/09/2012 20:37:08
Quote Anchor link
Wat wil je 'merge'n?
Je hebt nu een array() met daarin drie array()'s.
 
Bas D L

Bas D L

01/09/2012 20:37:47
Quote Anchor link
Ik wil er 1 van maken
 
- SanThe -

- SanThe -

01/09/2012 20:41:26
Quote Anchor link
Je wilt die 3 array()'s die er in zitten als één array() hebben?
 
Bas D L

Bas D L

01/09/2012 20:42:54
Quote Anchor link
Kan dat?
 
Wouter J

Wouter J

01/09/2012 20:46:32
Quote Anchor link
Kijk eens naar foreach icm array_merge.
 
- SanThe -

- SanThe -

01/09/2012 20:49:07
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
$array
= array( 0 => array ( 0 => 3, 'day' => 3 ),
                1 => array ( 0 => 4, 'day' => 4 ),
                2 => array ( 0 => 6, 'day' => 6 ) );
echo '<pre>'.print_r($array,true).'</pre>';
$new = array_merge($array[0],$array[1],$array[2]);
echo '<pre>'.print_r($new,true).'</pre>';
?>


Het wordt alleen een puinhoop zo:
Quote:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
Origineel:
Array
(
    [
0] => Array
        (
            [
0] => 3
            [day] => 3
        )

    [
1] => Array
        (
            [
0] => 4
            [day] => 4
        )

    [
2] => Array
        (
            [
0] => 6
            [day] => 6
        )

)



Nieuw:
Array
(
    [
0] => 3
    [day] => 6
    [1] => 4
    [2] => 6
)
?>
Gewijzigd op 02/09/2012 10:12:36 door - SanThe -
 
Bas D L

Bas D L

02/09/2012 08:38:24
Quote Anchor link
Sorry zal proberen iets duidelijker te zijn.

$resultset = $objViewAdmin->getDataStatusByAcconr($acconr,$year,$month);

Array
(
[0] => Array
(
[0] => 3
[day] => 3
)

[1] => Array
(
[0] => 4
[day] => 4
)

[2] => Array
(
[0] => 6
[day] => 6
)

)

moet worden

Array
(
[0] => 3
[1] => 4
[2] => 6
)

Hoe kan ik $resultset omzetten?
 
Eddy E

Eddy E

02/09/2012 09:19:21
Quote Anchor link
Beter wijzig je die functie gewoon zelf...
 
Bas D L

Bas D L

02/09/2012 09:21:54
Quote Anchor link
@eddy ?!?!
 
John Berg

John Berg

02/09/2012 10:10:37
Quote Anchor link
Ahh .. je hebt je mysql zo ingesteld dat ie zowel een normaal array als een array met keys ophaalt!

Dit moet je niet in PHP oplossen, maar op het moment dat je de data 'fetched' meteen in het goede formaat ophalen.

zie: http://www.php.net/manual/en/pdostatement.fetchall.php

(Je moet de default PDO::FETCH_BOTH veranderen)
 
- SanThe -

- SanThe -

02/09/2012 10:17:06
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
$array
= array( 0 => array ( 0 => 3, 'day' => 3 ),
                1 => array ( 0 => 4, 'day' => 4 ),
                2 => array ( 0 => 6, 'day' => 6 ) );
$new = array();
foreach($array as $value)
{

    $new[] = $value[0];
}

echo '<pre>'.print_r($new,true).'</pre>';
?>
 
Bas D L

Bas D L

02/09/2012 10:46:02
Quote Anchor link
Thanks SanThe, dat was de oplossing icm pregmatch
 
John Berg

John Berg

02/09/2012 10:54:25
Quote Anchor link
Bas D L op 02/09/2012 10:46:02:
Thanks SanThe, dat was de oplossing icm pregmatch


Wat een waanzin om een verkeerde instelling bij de query op deze manier op te lossen!
 
Bas D L

Bas D L

02/09/2012 10:57:13
Quote Anchor link
@John
Ik kom er niet uit, wellicht jij?

$query = mysql_query("SELECT calender.day FROM `calender` left join accos on calender.acco_id = accos.acco_id
where
accos.acconr = '$acconr'
and
calender.year = '$year'
and
calender.month = '$month'
");
$result2 = array();

while ($array = mysql_fetch_array($query)) {
$result2[] = $array;
}
return $result2;
 
John Berg

John Berg

02/09/2012 11:12:48
Quote Anchor link
zie: http://php.net/manual/en/function.mysql-fetch-array.php

mysql_fetch_array($query) moet zijn mysql_fetch_array($query, MYSQL_NUM)

probleem opgelost!

n.b. ik vind het onverstandig om de query een array met numerieke keys te laten teruggeven! Beter is om een array met veldnamen te gebruiken. (MYSQL_ASSOC)
Gewijzigd op 02/09/2012 11:16:17 door John Berg
 
Bas D L

Bas D L

02/09/2012 11:19:22
Quote Anchor link
Thanks, nog beter ;-)
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

02/09/2012 11:25:09
Quote Anchor link
Nog niet helemaal: $result2[] = $array['day']; zal ook helpen.
Maar waarom eerst met een while lus in een array zetten, je kan toch ook gewoon het resultaat teruggeven?
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.