PHP将Object Array的一个字段复制到一个简单的Array中
PHP copy a field of Object Array to a simple Array
我有一个包含多个字段的PHP
Object Array
,我需要提取所有相等的字段并将它们存储到individual arrays
中,因为我需要将它们传递给bash script
,我更喜欢单独的数组,因为bash
不是面向对象的,对吗?
以下是我要做的:
<?php
$data = json_decode($_POST['data']);
$text_array = "'" . implode ("'n", $data->text) . "'";
$time_text = "'" . implode ("'n", $data->time_text) . "'";
$gender = "'" . implode ("'n", $data->gender) . "'";
$pitch = "'" . implode ("'n", $data->pitch) . "'";
$response = shell_exec("./test_bash.sh $pitch $gender $timetext $text_array 2>&1");
echo "$response";
?>
数据从javascript
通过ajax
传递到PHP
。原来的Object Array
有这样的结构:
text
time_text
gender
pitch
我在CCD_ 11中创建了CCD_
function dataClass(text, time_txt, gender, pitch, mood) {
this.text = text;
this.time_text = time_txt;
this.gender = gender;
this.pitch = pitch;
this.mood = mood;
}
for(var i = 0; i < length - 1; i++){
data.push(new dataToSynth(subtitles_trans[i].text, subtitles_trans[i].end - subtitles_trans[i].start, genere, pitch));
}
如何在PHP中将对象数组字段复制到单个数组?
您不需要使用json_decode。在您的情况下,"$_POST['data']"是一个数组,而不是一个对象。试试这个代码:
$data = $_POST['data'];
$text_array = "'" . implode ("'n", $data['text']) . "'";
$time_text = "'" . implode ("'n", $data['time_text']) . "'";
$gender = "'" . implode ("'n", $data['gender']) . "'";
$pitch = "'" . implode ("'n", $data['pitch']) . "'";
您可以将对象值强制转换为数组,只需将字符串强制转换为int即可。
<?php
class a{
public $a="a";
public $b="b";
public $c="c";
}
$a= new a();
$b= (array)$a;
var_dump($a);
/*object(a)#1 (3) {
["a"]=>
string(1) "a"
["b"]=>
string(1) "b"
["c"]=>
string(1) "c"
}*/
var_dump($b);
/*array(3) {
["a"]=>
string(1) "a"
["b"]=>
string(1) "b"
["c"]=>
string(1) "c"
}*/
所以应该是这样的:
<?php
$data =(array) json_decode($_POST['data']);
$text_array = "'" . implode ("'n", $data['text']) . "'";
$time_text = "'" . implode ("'n", $data['time_text']) . "'";
$gender = "'" . implode ("'n", $data['gender']) . "'";
$pitch = "'" . implode ("'n", $data['pitch']) . "'";
$response = shell_exec("./test_bash.sh $pitch $gender $timetext $text_array 2>&1");
echo "$response";
?>
相关文章:
- JavaScript:为什么 array.push() 附加两个对象而不是一个对象
- 从Node.js上的mysql结果JSON中获取一个Array值
- 在Javascript中向Array对象添加一个方法
- Javascript Array 只显示最后一个孩子
- NodeJS put array in MongoDB doc.validate 不是一个函数
- Undefined在使用array.splice时不是一个函数
- 为什么我可以在一个不是数组的对象上调用 Array.prototype.filter()
- 使用Java.lang.reflect.array.newInstance创建一个带有Java反射的二维数组
- Javascript-从另一个Date()对象数组中删除Array of Date()
- 可以使用Array.splice()通过在数组最后一个元素之外的索引处添加元素来创建稀疏数组吗
- 为什么Ractive.js reset()和update()方法重复模板,因为有一个带有array.protype.so
- PHP将Object Array的一个字段复制到一个简单的Array中
- Simple Array.prototype正在给出一个TypeError
- 为什么你不能返回一个对象到Javascript's Array.map()并且它正确地映射它?
- array.slice()复制一个新数组
- 在另一个排序函数中调用自定义 array.sort 函数
- 在jquery中使用php array创建一个关联数组
- 从两个Array创建一个Array
- 从一个Array对象中提取关键值,并使用下划线javascript从其他对象中提取值进行筛选
- 在node.js中,为什么有一个util.isArray和一个Array.isArray