Jump to content

sorting this array information


severndigital

Recommended Posts

I am getting some information from a json call the json encoded information looks like this.

 

[
{"CUSTOMER_prod_name":"TESTING","J_J_num":"186322R","CUST_CODE_num":"502","JOB_TITLE":"TESTING TITLE","PROOF_REQUIRED":"","LOG_IN_DATE":"10-05-05","DUE_DATE":"10-07-02","DATE_DELIVERED":"","CUSTOMER_PO_NUMBE":"109440","DATE_TEXT_PRINTED":"","JOB_DESCRIPTION":"BOOK","DATE_STRIPPED":"","DATE_PROOF_DELIVERED":"","QTY_ORDERED":"10000","UNIT_PRICE":".48800","LOT_PRICE":"","TOTAL_JOB_COST":"4880.00","REPRINT_TO_PULL":"","REPRINT_PULLED":"","TO_PUNCHING":"05-05-10","PUNCHING_COMPLETED":"","TEXT_TO_OPTI-COPY":"","COVER_TO_OPTI-COPY":"","OPTI-COPY_TEXT_COMPL":"","OPTI-COPY_COVER_COMP":"","TEXT_TO_STRIPPING":"","PROOFS_REQUIRED_TE":"N","PROOFS_OUT_TEXT":"","PROOFS_REQUIRED_CO":"N","PROOFS_BACK_TEXT":"","ANOTHER_PROOF_REQUIR":"","COVER_TO_STRIPPING":"","STRIPPING_TEXT_COMPL":"","JOB_PLATED_TEXT":"06-10-10","PRESS_CODE_TEXT":"442","PROOF_DUE":"","prod_name":"","cust_acctnum":"4","DIGITAL_PRESS":"","DESTCITY,STATE":"","PROOF_BACK":"","DEPOSIT":"","DATE_COVER_PRINTED":"","TEXT_FOLDED":"","COVER_FOLDED":"","BOUND":"","NEW_JOB_Y_or_N":"N","NEW_CODE_num":"N","OLD_CUST_CODE":"502","JOB_PLATED_COVER":"06-15-10","PRESS_CODE_COVER":"640","TEXT_PRINTED":"","STRIPPING_COVER_COMP":"","COVER_PRINTED":"","TEXT_TO_CAMERA":"","FOLD_TEXT":"","COVER_TO_CAMERA":"","FOLD_COVER":"","TEXT_READY_FOR_PLATI":"","COVER_READY_FOR_PLAT":"","RUSH_JOB":"N","TYPE_OF_BINDING":"SWS","GENERAL_DESCRIPTION":"48P+C,_12X9_OB,3C_COV","TEXT_TO_BE_PROOFED":"","BEGIN_STRIPPING_TEXT":"","BEGIN_STRIPPING_COVE":"","PROOFS_OUT_COVER":"","PROOFS_BACK_COVER":"","ANOTHER_PROOF_REQUIR":"","COVER_TO_BE_PROOFED":"","CORRECTIONS_TO_PROOF":"","CORRECTIONS_TO_PROOF":"","num_OF_PROOFS_SENT_T":"","num_OF_PROOFS_SENT_C":"","COD_CUSTOMER":"","DIGITAL_PRINT":"N","DOCUSHARE_UPLOAD":"Y","INVOICED":"","PRO_INV_STATUS":"","FREE":"","FREE":"","ESTIMATE_num":"","PURGE_DIGITAL_FLATS":"N","CSR_INITIALS":"KH","ARRIVAL_DATE":"10-05-05","HOT_LIST":"N","HOT_COMMENT":"","ON_HOLD":"N","ON_HOLD_COMMENT":"","EST_DEL_DATE":"","DEL_Date_Comment":"","ROUTING_CODE":"","PAPER_COST":"","MANUFACTURING_COST":"","FRIEGHT_COST":"","MISC_AA_COST":"","40num_OFFSET_LBS":"","60num_C2S_SHEETS":""}]

but with many more entries.

 

when I use the json_decode() function.. i get this.

 

Array
(
    [0] => stdClass Object
        (
            [CUSTOMER_prod_name] => TESTING
            [J_J_num] => 186322R
            [CUST_CODE_num] => 502
            [JOB_TITLE] => TESTING TITLE
            [PROOF_REQUIRED] => 
            [LOG_IN_DATE] => 10-05-05
            [DUE_DATE] => 10-07-02
            [DATE_DELIVERED] => 
            [CUSTOMER_PO_NUMBE] => 109440
            [DATE_TEXT_PRINTED] => 
            [JOB_DESCRIPTION] => BOOK
            [DATE_STRIPPED] => 
            [DATE_PROOF_DELIVERED] => 
            [QTY_ORDERED] => 10000
            [uNIT_PRICE] => .48800
            [LOT_PRICE] => 
            [TOTAL_JOB_COST] => 4880.00
            [REPRINT_TO_PULL] => 
            [REPRINT_PULLED] => 
            [TO_PUNCHING] => 05-05-10
            [PUNCHING_COMPLETED] => 
            [TEXT_TO_OPTI-COPY] => 
            [COVER_TO_OPTI-COPY] => 
            [OPTI-COPY_TEXT_COMPL] => 
            [OPTI-COPY_COVER_COMP] => 
            [TEXT_TO_STRIPPING] => 
            [PROOFS_REQUIRED_TE] => N
            [PROOFS_OUT_TEXT] => 
            [PROOFS_REQUIRED_CO] => N
            [PROOFS_BACK_TEXT] => 
            [ANOTHER_PROOF_REQUIR] => 
            [COVER_TO_STRIPPING] => 
            [sTRIPPING_TEXT_COMPL] => 
            [JOB_PLATED_TEXT] => 06-10-10
            [PRESS_CODE_TEXT] => 442
            [PROOF_DUE] => 
            [prod_name] => 
            [cust_acctnum] => 4
            [DIGITAL_PRESS] => 
            [DESTCITY,STATE] => 
            [PROOF_BACK] => 
            [DEPOSIT] => 
            [DATE_COVER_PRINTED] => 
            [TEXT_FOLDED] => 
            [COVER_FOLDED] => 
            [bOUND] => 
            [NEW_JOB_Y_or_N] => N
            [NEW_CODE_num] => N
            [OLD_CUST_CODE] => 502
            [JOB_PLATED_COVER] => 06-15-10
            [PRESS_CODE_COVER] => 640
            [TEXT_PRINTED] => 
            [sTRIPPING_COVER_COMP] => 
            [COVER_PRINTED] => 
            [TEXT_TO_CAMERA] => 
            [FOLD_TEXT] => 
            [COVER_TO_CAMERA] => 
            [FOLD_COVER] => 
            [TEXT_READY_FOR_PLATI] => 
            [COVER_READY_FOR_PLAT] => 
            [RUSH_JOB] => N
            [TYPE_OF_BINDING] => SWS
            [GENERAL_DESCRIPTION] => 48P+C,_12X9_OB,3C_COV
            [TEXT_TO_BE_PROOFED] => 
            [bEGIN_STRIPPING_TEXT] => 
            [bEGIN_STRIPPING_COVE] => 
            [PROOFS_OUT_COVER] => 
            [PROOFS_BACK_COVER] => 
            [COVER_TO_BE_PROOFED] => 
            [CORRECTIONS_TO_PROOF] => 
            [num_OF_PROOFS_SENT_T] => 
            [num_OF_PROOFS_SENT_C] => 
            [COD_CUSTOMER] => 
            [DIGITAL_PRINT] => N
            [DOCUSHARE_UPLOAD] => Y
            [iNVOICED] => 
            [PRO_INV_STATUS] => 
            [FREE] => 
            [ESTIMATE_num] => 
            [PURGE_DIGITAL_FLATS] => N
            [CSR_INITIALS] => KH
            [ARRIVAL_DATE] => 10-05-05
            [HOT_LIST] => N
            [HOT_COMMENT] => 
            [ON_HOLD] => N
            [ON_HOLD_COMMENT] => 
            [EST_DEL_DATE] => 
            [DEL_Date_Comment] => 
            [ROUTING_CODE] => 
            [PAPER_COST] => 
            [MANUFACTURING_COST] => 
            [FRIEGHT_COST] => 
            [MISC_AA_COST] => 
            [40num_OFFSET_LBS] => 
            [60num_C2S_SHEETS] => 
        )
);

again with many more entries.

 

What i need to do is sort the array entries by information in one of the keys (for this example lets use J_J_num.

 

how would I do that?

 

I tried playing with array_multisort(), but have had no success.

any help would be great.

 

Thanks in advance,

P

 

 

Link to comment
Share on other sites

use the usort() function and create a function for the sorting. http://us.php.net/manual/en/function.usort.php

 

You can even sort by multiple fields.Here is an example with sorting of three different fields.

function sortEntries($a, $b)
{
    //If J_J_Num is not same, sort by that field
    if($a['J_J_num']!=$b['J_J_num']) {
        return ($a['J_J_num']<$b['J_J_num'])? 1 : -1; }
    //If J_J_Num was the same, sort by field2, if not the same
    if($a['field2']!=$b['field2']) {
        return ($a['J_J_num']<$b['J_J_num'])? 1 : -1; }
    //If J_J_Num and field2 were the same, sort by field3, if not the same
    if($a['field3']!=$b['field3']) {
        return ($a['J_J_num']<$b['J_J_num'])? 1 : -1; }
    //All sort fields were the same return 0
    return 0;
}

usort($theArray, 'sortEntries');

 

Note: the order of 1 and -1 determine whether that field is sorted in ascending or descending order.

Link to comment
Share on other sites

i will simplify the data for now. Hope this helps .

 

the array looks something like this.

 

Array
(
    [0] => stdClass Object
        (
            [CUSTOMER_prod_name] => TESTING
            [J_J_num] => 186322R
        )
    [1] => stdClass Object
        (
            [CUSTOMER_prod_name] => TESTING
            [J_J_num] => 155654
        )
    [2] => stdClass Object
        (
            [CUSTOMER_prod_name] => TESTING
            [J_J_num] => 456789
        )
)

 

I need to sort this array by the key J_J_num

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.