如何将$会话[';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插入所有行和列。我得到25值5的回声,即使我输入!在数组()中
条件
我想如果我将$\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
参数来更正“子”数组。另外,数组()中的也不适用于多维数组