Forum Moderators: coopster

Message Too Old, No Replies

Compare array values and replace when it is similar

compare array values

         

iyappan

5:55 am on Apr 13, 2010 (gmt 0)

10+ Year Member



I have an array of data like:

Array
(
[0] => Array
(
[d_id] => 634
[i_id] => 613
[m_number] => 20016
[d_number] => AEQ12345
)

[1] => Array
(
[d_id] => 634
[i_id] => 1069
[m_number] => 20016
[d_number] => AEQ12345
)


[2] => Array
(
[d_id] => 634
[i_id] => 638
[m_number] => 20016
[d_number] => AEQ12345
)

)

In the above array I have to check for the value "d_number" in the array and if it repeats I have to increment the value of the matching element and the final array should look like this:

Array
(
[0] => Array
(
[d_id] => 634
[i_id] => 613
[m_number] => 20016
[d_number] => AEQ12345
)

[1] => Array
(
[d_id] => 634
[i_id] => 1069
[m_number] => 20016
[d_number] => AEQ12346 //Changed value
)


[2] => Array
(
[d_id] => 634
[i_id] => 638
[m_number] => 20016
[d_number] => AEQ12347 //Changed value
)

)

Any help on this?

Readie

5:40 pm on Apr 20, 2010 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



foreach($someArray as $current) {
preg_match('/^([^\d]*)([\d]+)$/', $current['d_number'], $out);
$check = $out[1];
if(isset($prev[$check])) {
$prev[$check] += 1;
} else {
$prev[$check] = $out[2];
}
$current['d_number'] = $check . $prev[$check];
}

Should sort that.

iyappan

4:12 am on Apr 21, 2010 (gmt 0)

10+ Year Member



Thanks. The above logic works fine.
This 32 message thread spans 2 pages: 32