好的,所以我被困在这里,我知道会有一个简单的解决方案,但我无法弄明白。所以问题是我有一个在数据库中创建列的函数(如果不存在)。我得到了功能,但我想在检测列类型(VARCHAR,INT等)和相应创建列的功能中添加功能。我想通过gettype
关键字完成此操作。现在,$productData
在数组中,所以我需要应用foreach来将它们分开,然后我得到值类型,问题是在最后的foreach循环中,它只给我字符串。其中$productData
有4个字符串和1个整数..
$array = (array) $productData;
$arrayValues = array_values( $array );
$i = 0;
foreach ( $arrayValues as $key => $value ) {
$types = array( "id-$i" => gettype( $value ) );
$i++;
}
var_dump($types);
有人可以帮助我吗?
谢谢..
答案 0 :(得分:4)
您只需要初始化一次数组并稍后向其中添加元素:
$array = (array) $productData;
$arrayValues = array_values( $array );
$i = 0;
$types = array();
foreach ($arrayValues as $key => $value) {
$types["id-$i"] = gettype($value);
$i++;
}
var_dump($types);
小心 gettype()
,因为它会在boject上失败。您需要确保每个$value
都是内部类型
<强>更新强>
gettype()
将为所有对象返回"object"
。因此,它是一种确定变量类型的安全方法。虽然如果你需要对象的类,你需要使用get_class()
,以防gettype()
返回"object"
答案 1 :(得分:1)
如果您首先使用MYSQL命令选择表定义:SHOW COLUMNS FROM mytable
将返回包含其定义的列数组