Re: joining array values

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Brent Baisley wrote:
Use the id number as the array key and a simple loop should join everything together.
for($i=0; $i<count($result['id']); $i++) {
$id = $result['id'][$i];
$text = $result['text'][$i];
$relevance = $result['relevance'][$i];
$resultSummary[$id]['id'] = $id;
if ( isset($resultSummary[$id]['text']) ) {
$resultSummary[$id]['text'] .= ' '.$text;
} else {
$resultSummary[$id]['text'] = $text;
}
if ( isset($resultSummary[$id]['rel']) ) {
$resultSummary[$id]['relevance'] += ' '.$relevance;
} else {
$resultSummary[$id]['relevance'] = $relevance;
}
}


You actually wouldn't need to have any entry for id in the resulting array since the id is the key for the array "row".

But you setup your array backwards, and you have a one multidimensional array, not three arrays. With your setup, if there is a value missing from any of the three "categories", then your data is out of sync.
Arrays are great for creating name/value pairs. But you should view a two dimensional array as a row/column setup: $result[row][column]
So your array should be setup like:
$result[0]['id']
$result[0]['text']
$result[0]['relevance']
$result[1]['id']
$result[1]['text']
$result[1]['relevance']
...


This assures your data aligns properly and it's actually easier to process in a loop.


On May 12, 2005, at 7:30 AM, Merlin wrote:

Hi there,

I do have a tricky problem with arrays.

There are 3 arrays:

$result[id][]
$result[text][]
$result[relevance][]

Now there might be the case that there are more results with the same $id. I would like to count all the relevances together for the same id.

For example:
id    text    relevance
23    ok    2
42    joel    1
23    php    1

Desired output:
id    text    relevance
23    ok php    3
42    joel    1

Has anybody an ide how to do that?

Thank you for any help,

Merlin

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Hi Brent,

thank you for that excellent example. I tried to get that working in a similar way but failed. However, you brought in knowledge which puts me into trouble. How can I output those arrays if they are the other way around?
I used to do it like this:
for ($i=0;$i<count($result[id]);$i++){
echo $result[id][$i];
echo $result[text][$i];
}


Now the array is the other way around, plus the array $resultSummary[$id]['id'] is not a 1,2,3 thing but there are missing values?!
I need those Id's to create proper links from the output.


Can you shed some more light on this?

Thank you for your excellent help.

Best regards, Merlin

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux