如何将$会话[';myarray';]转换为常规PHP数组

如何将$会话[';myarray';]转换为常规PHP数组,php,arrays,session,Php,Arrays,Session,所以我声明了一个会话数组,并用零初始化它。它基本上是一个多维数组。但是,我正在考虑将其转换为常规数组,因为每次使用in_array()函数测试值是否存在时,它都会失败。它不断添加现有值 <?php session_start(); $_SESSION['numbers'] = array( array(0,0,0,0,0), //row1 array(0,0,0,0,0), //row2 array(0,0,0,0,0),

所以我声明了一个会话数组,并用零初始化它。它基本上是一个多维数组。但是,我正在考虑将其转换为常规数组,因为每次使用
in_array()
函数测试值是否存在时,它都会失败。它不断添加现有值

<?php 
    session_start();
    $_SESSION['numbers'] = array(
        array(0,0,0,0,0), //row1
        array(0,0,0,0,0), //row2
        array(0,0,0,0,0), //row3
        array(0,0,0,0,0), //row4
        array(0,0,0,0,0) //row5
    );
?>

<?php
    if (isset($_POST["num"]) && !empty($_POST["num"])){
        $userInput = $_POST["num"];
        for($r = 0; $r<sizeof($_SESSION['numbers']); $r++){
            for($c = 0; $c<sizeof($_SESSION['numbers']); $c++){
                $colVal = $_SESSION['numbers'][$r][$c];
                    insertInputAt($r,$c,$userInput);    
            }
        }
    }

    function insertInputAt($row,$col,$input){
        if(!in_array($input, $_SESSION['numbers'])){ //this fails
            echo $input . "<br/>";
            $_SESSION['numbers'][$row][$col] = $input;
        }
    }
?>

如果我输入,比如说5,它会将输入5插入所有行和列。我得到255的回声,即使我输入
!在数组()中
条件

我想如果我将
$\u SESSION['numbers]
解析为
insertInputAt()
方法中的常规数组
!在_array()中
条件可能会准确工作


多谢各位

将您的
insertInputAt
函数修改为:

function insertInputAt($row,$col,$input){
    if(!in_array($input, $_SESSION['numbers'][$row])){ //this fails
        echo $input . "<br/>";
        $_SESSION['numbers'][$row][$col] = $input;
    }
}
函数插入输入($row,$col,$input){
如果(!in_array($input,$_SESSION['numbers'][$row]){//此操作失败
回显$input。“
”; $\会话['numbers'][$row][$col]=$input; } }
首先,您不需要初始化会话['numbers']

<?php 
session_start();
$userInput = $_POST["num"] = 1;
for($r=0;$r<count($_SESSION['numbers']);$r++){
    $found = 0;
    for($c=0;$c<count($_SESSION['numbers'][$r]);$c++){
        if(($_SESSION['numbers'][$r][$c]==0)&&(myfunction($_SESSION['numbers'],$userInput)==0)){
            $_SESSION['numbers'][$r][$c] = $userInput;unset($_POST['num']); $found=1;break;
        }
    }
    if($found==1)break;
}

function myfunction($array,$value){
    foreach($array as $q){
        if(!in_array($value,$q)){
            for($i=0;$i<count($q);$i++){
                if($q[$i]==0) return false;
            }
        }
    }
}
echo "<pre>";print_r($_SESSION['numbers']);
?>


如果要在_数组中使用
则需要选择在_数组($input,$_会话['numbers'][$ow])中使用
$c
将具有
0,1,2,3,4
参数来更正“子”数组。另外,数组()中的
也不适用于多维
数组