PHP Object Iteration - Вложенные структуры

Не могу комментировать, поэтому я отправляю ответ таким образом. @Ira Baxter, отличный ответ. Я просто хочу добавить, что вам не нужно разделить 10 раз, когда вы разместили, что вы установили регистр cx в значение 10. Просто разделите число в топе до «ax == 0»

loop1: call dividebyten
       ...
       cmp ax,0
       jnz loop1

Вам также нужно сохранить количество цифр в исходном номере.

       mov cx,0
loop1: call dividebyten
       inc cx

В любом случае, вы помогли мне Ире Бакстер, есть только несколько способов оптимизации кода:)

Это касается не только оптимизации, но и форматирования. Если вы хотите напечатать номер 54, вы хотите напечатать 54 не 0000000054:)

-2
задан daz-wuk 11 March 2019 в 13:58
поделиться

1 ответ

Вы должны создать рекурсивную функцию, это означает, что сам вызов функции выполняется до тех пор, пока не будет выполнено условие, а затем он возвращает результат и проходит через стек ранее вызванной функции для определения конечных результатов. Вот так

<?php
// associative array containing array, string and object
$array = ['hello' => 1, 'world' => [1,2,3], '!' => ['hello', 'world'], 5 => new Helloworld()];

// class helloworld
class Helloworld {

    public $data;

    function __construct() {
        $this->data = "I'm an object data";
    }
}

//function to read all type of data
function recursive($obj) {
    if(is_array($obj) or is_object($obj)) {
        echo ' [ '.PHP_EOL;
      foreach($obj as $key => $value) {
          echo $key.' => ';
          recursive($value);
      }  
      echo ' ] '.PHP_EOL;
    } else {
        echo $obj.PHP_EOL;
    }
}


// call recursive
recursive($array);

?>

Это печатает примерно так:

 [ 
hello => 1
world =>  [ 
0 => 1
1 => 2
2 => 3
 ] 
! =>  [ 
0 => hello
1 => world
 ] 
5 =>  [ 
data => I'm an object data
 ] 
 ] 

Надеюсь, это поможет?

0
ответ дан RLoris 11 March 2019 в 13:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: