1

Probably my question is too much common or easy for you, but I really have no idea how to do it. Trying all everything I know and lots of googling didn't help me.

I just need a nested array.

Here is my PHP code:

EDITED
Corrected: $data['product_names'][$language['language_id']][] = array(

$data['product_names'] = array();

foreach ($data['languages'] as $language) {
    $product_names_info = $this->model_catalog_category->getCategoryMultiLang($this->request->get['product_id'], $language['language_id']);

    if ($product_names_info) {
        $data['product_names'][$language['language_id']][] = array(
            'category_id' => $product_names_info['category_id'],
            'language_id' => $product_names_info['language_id'],
            'name'        => $product_names_info['name']
        );
    }
}

print_r($data['product_names']);

The result that I get:

Array
(
    [5] => Array
        (
            [0] => Array
                (
                    [category_id] => 
                    [language_id] => 
                    [name] => 
                )

        )

    [2] => Array
        (
            [0] => Array
                (
                    [category_id] => 
                    [language_id] => 
                    [name] => 
                )

        )

    [4] => Array
        (
            [0] => Array
                (
                    [category_id] => 
                    [language_id] => 
                    [name] => 
                )

        )

    ... 

The result should look like this:

Array
(
    [0] => Array
        (
            [language_id] => 1
            [category_id] => 8
            [name] => book
        )

    [1] => Array
        (
            [language_id] => 5
            [category_id] => 188
            [name] => magazine
        )

...
)
Array
(
    [0] => Array
        (
            [language_id] => 1
            [category_id] => 8
            [name] => buch
        )

...

UPDATED
The result of print_r($product_names_info); inside foreach ($data['languages'] as $key => $language) {

Array
(
    [0] => Array
        (
            [language_id] => 5
            [category_id] => 8
            [name] => Gecelik
        )

    [1] => Array
        (
            [language_id] => 5
            [category_id] => 188
            [name] => Sabahlık
        )

    ...

)
Array
(
    [0] => Array
        (
            [language_id] => 2
            [category_id] => 8
            [name] => لباس خواب
        )

    [1] => Array
        (
            [language_id] => 2
            [category_id] => 188
            [name] => Sabahlık
        )

Thanks for any kind help.

7
  • 1
    Can we see the result you are getting aswell? Commented Oct 23, 2017 at 10:18
  • 1
    what's the actual result? however you seem need to remove this [$language] Commented Oct 23, 2017 at 10:18
  • what's your issue here? Commented Oct 23, 2017 at 10:19
  • 1
    $language is an array, you used it as a key, I think that's the problem Commented Oct 23, 2017 at 10:22
  • @rahulsm seems that $language is not an array, maybe it's a string Commented Oct 23, 2017 at 10:27

1 Answer 1

2
$data['product_names'] = array();

foreach ($data['languages'] as $language) {
    $product_names_info = $this->model_catalog_category->getCategoryMultiLang($this->request->get['product_id'], $language['language_id']);

    if ($product_names_info) {
        foreach ($product_names_info as $key => $value) {
            $data['product_names'][$language['language_id']][] = array(
                'category_id' => $value['category_id'],
                'language_id' => $value['language_id'],
                'name'        => $value['name'],
            );
        }

    }
}

print_r($data['product_names']);

I think you were missing foreach for the data you fetched into var $product_names_info

Sign up to request clarification or add additional context in comments.

6 Comments

Hey, thanks! I tried you approach but second array is empty as before.
Can you update your question with output of $product_names_info also?
yes, I tried both, second array give the same empty result
Can you update your question with output of $product_names_info also?
Are you sure, the result you get is output of $product_names_info array? i.e. title of The result that I get: is $product_names_info's output?
|

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.