PHP Code вставляет значения, но при вызове с функцией результат отличается - PullRequest
0 голосов
/ 21 мая 2018

я пытаюсь выполнить код, вызывая функцию, но результат отличается от выполнения кода самостоятельно

$arr1=array(
0 => array(
"id" => 5,
"SKS" => 2,
"assignStatus" => 0
)

);

$arr2=array(
    0 => array(//hari senin
        0 => array(//sesi 1
            0 => array( //ruang 405
                0 => "", //draft 
                1 => "",  //sks
                2 => 0   //count3sks
            )       
        )
    )
);

//execute code with function
assignNilai($arr2,0,0,0,$arr1,0);
echo $arr2[0][0][0][0]." ".$arr2[0][0][0][1]." ".$arr2[0][0][0][2];
echo "<br>";
//execute code without function
$arr2[0][0][0][0] = $arr1[0]['id'];
 $arr2[0][0][0][1] = $arr1[0]['SKS'];
  if ($arr2[0][0][0][1]==3) {
    $arr2[0][0][0][2] = $csp[0][0][0][2] + 1; 
  }

echo $arr2[0][0][0][0]." ".$arr2[0][0][0][1]." ".$arr2[0][0][0][2];

function assignNilai($arr2,$hari,$sesi,$ruang,$arr1,$draft){
  $arr2[$hari][$sesi][$ruang][0] = $arr1[$draft]['id'];
  $arr2[$hari][$sesi][$ruang][1] = $arr1[$draft]['SKS'];
   if ($arr2[$hari][$sesi][$ruang][1]==3) {
      $arr2[$hari][$sesi][$ruang][2] = $csp[$hari][$sesi][$ruang][2] + 1; 
  }
}

я пытаюсь добиться того, что отображается в коде, выполняемом вручную, с помощью функции, как это сделать?

1 Ответ

0 голосов
/ 21 мая 2018

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

function assignNilai(&$arr2,$hari,$sesi,$ruang,$arr1,$draft){

Бит &$arr2 позволяет функции изменять исходный массив.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...