[FX.php List] A little more clarity on my array_unique question
Vision Computer Consulting
info at visioncomputerconsulting.com
Thu Apr 12 11:20:33 MDT 2007
Just had a case where I needed to create an array from the FX object.
Does this help?
$i = 0;
foreach($fx_Result['data'] as $key=>$value) {
$contents[$i] = array(
'warrantyID'=> $value['warrantyID'][0],
'name'=> $value['warranties_new::name'][0],
'name_sub'=> $value['warranties_new::name_sub'][0],
'price'=> $value['warranties_new::price'][0],
'online_discount'=> $value
['warranties_new::online_discount'][0]
);
$i++;
}
On Apr 12, 2007, at 9:11 AM, Bob Patin wrote:
> Andrew,
>
> Adding
>
> array_unique($n);
> array_unique($i);
>
> looks like it would work, but it still forces me to loop through
> the 1722 records. Is there a way to use
>
>> foreach($vlResult['data']as $key=>$vlData)
>
> to create my array, and then remove duplicates from $vlData?
>
> It tried just doing this
>
> foreach($vlResult['data']as $key=>$vlData)
> array_unique($vlData);
>
> but that didn't seem to work...
>
> My knowledge of arrays is just enough to get me through most
> things, but this one has me baffled for some reason...
>
> Thanks,
>
> Bob
>
>
>
>
>
>
> On Apr 12, 2007, at 10:53 AM, Andrew Denman wrote:
>
>> In your original questions, it appears you were sending
>> $vlData['target_name'][0] to array_unique, but $vlData
>> ['target_name'][0] is
>> not an array - it's a string. You have to write all of the
>> strings to an
>> array and then run it through array_unique.
>>
>> I would do the following to prevent the name and image link from
>> becoming
>> mismatched when you run array_unique. This assumes that two car
>> names won't
>> share the same image, as the image data is what's going to be
>> compared for
>> uniqueness.
>>
>> foreach($vlResult['data']as $key=>$vlData) {
>> $carlist[$vlData['target_name'][0]] =
>> "/images".$reportyear."/".$vlData['target_image'][0];
>> }
>> array_unique($carlist);
>>
>> foreach($carlist as $carName => $carImage) {
>> // Output
>> }
>>
>> If you needed the separate arrays, this should work. It also
>> assumes that
>> two car names won't share the same image, as then you can end up
>> with one
>> array shorter than the other.
>>
>> foreach($vlResult['data']as $key=>$vlData) {
>> $n[$c] = $vlData['target_name'][0];
>> $i[$c] = "/images".$reportyear."/".$vlData['target_image'][0];
>> $c++;
>> }
>> array_unique($n);
>> array_unique($i);
>>
>> And let's hope this email keeps all it's line returns this time.
>>
>> Andrew Denman
>>
>> -----Original Message-----
>> From: fx.php_list-bounces at mail.iviking.org
>> [mailto:fx.php_list-bounces at mail.iviking.org] On Behalf Of Bob Patin
>> Sent: Thursday, April 12, 2007 10:23 AM
>> To: FX.php Discussion List
>> Subject: [FX.php List] A little more clarity on my array_unique
>> question
>>
>> Perhaps I should explain more what I'm trying to achieve:
>>
>> I'm returning an array $vlData that has auto names & image names,
>> like this:
>>
>> Chevrolet Astro ---- $vlData['target_name'][0]
>> Chevrolet Astro.jpg ---- $vlData['target_image'][0]
>>
>> When I return this array, there can be a lot of records with the same
>> vehicle in them, and I need to display a single button for each
>> vehicle.
>>
>> So I've been using a FOREACH loop to cycle thru the results, and then
>> create a 2nd array that contains only non-duplicates.
>>
>> The problem is that some models, Chevrolet particularly, have a ton
>> of matches (in this case, 1722), and the loop takes a long time to
>> finish.
>>
>> So here's my code so far; this works, but it's slow as Christmas:
>>
>> <?php
>> $c=0;
>> //nuke the array first
>> while($c<25){
>> $n[$c]='';
>> $i[$c]='';
>> $c++;
>> }
>> $thename='';
>> $c=0;
>> $n = array('thename');
>> $i = array('image');
>>
>> foreach($vlResult['data']as $key=>$vlData) {
>> if ($thename <> $vlData['target_name'][0]){
>> $n[$c] = $vlData['target_name'][0];
>> $i[$c] =
>> "/images".$reportyear."/".$vlData['target_image'][0];
>> $thename = $vlData['target_name'][0];
>> $c++;
>> }
>> }
>> ?>
>>
>> Any thoughts? :)
>>
>> Thanks,
>>
>> Bob
>>
>>
>>
>>
>> _______________________________________________
>> FX.php_List mailing list
>> FX.php_List at mail.iviking.org
>> http://www.iviking.org/mailman/listinfo/fx.php_list
>>
>> _______________________________________________
>> FX.php_List mailing list
>> FX.php_List at mail.iviking.org
>> http://www.iviking.org/mailman/listinfo/fx.php_list
>
> _______________________________________________
> FX.php_List mailing list
> FX.php_List at mail.iviking.org
> http://www.iviking.org/mailman/listinfo/fx.php_list
>
More information about the FX.php_List
mailing list