douqian2957 2019-06-03 14:16
浏览 136

将PHP二维数组转换为PHP扩展

How can I read multidimensional array in PHP extension?

$dataValue[0][1] = 'a';
$dataValue[0][2] = 'b';

And here is my PHP extension code:

ZEND_HASH_FOREACH_BUCKET(Z_ARRVAL_P(data_r_value), Bucket *bucket)
    setArray(&bucket, currentRow, currentCol, dataValue[currentRow][currentCol]);
ZEND_HASH_FOREACH_END();

I'm tried to use dataValue[currentRow][currentCol] to read value but it gives an error:

'[': illegal for struct

Thank in advance.

  • 写回答

1条回答 默认 最新

  • douwen3973 2019-06-05 02:00
    关注

    I just solved my problem by using 2 for loop.

    PHP Array:

    $data[0][1] = 'a'; // $data[x][y], x: row, y: col
    

    In C, PHP Extension:

    zend_bool found = FALSE;
    zend_long iRow;
    zend_string *sRow;
    zval *rowArray;
    ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(format_handle), iRow, sRow, rowArray)
        if (iRow == rowNeeded) {
            zend_long iCol;
            zend_string *sCol;
            zval *formatData;
            ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(rowArray), iCol, sCol, formatData)
                if (iCol == colNeeded) {
                   found = TRUE;
                   break;
                }
            ZEND_HASH_FOREACH_END();
         }
         if (found) { break; }
    ZEND_HASH_FOREACH_END();
    
    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器